This notebook is for the acoustic analysis of the falling diphthongs in the standard Mandarin with the approach GAMMs.
#install.packages('rmarkdown')
# Importation des emballages
#install.packages("itsadug")
library(nlme)
library(ggplot2)
library(mgcv)
## This is mgcv 1.8-33. For overview type 'help("mgcv-package")'.
library(itsadug)
## Loading required package: plotfunctions
##
## Attaching package: 'plotfunctions'
## The following object is masked from 'package:ggplot2':
##
## alpha
## Loaded package itsadug 2.4 (see 'help("itsadug")' ).
source("gamm_hacks.r")
#install.packages("tidyverse")
library(tidyverse)
## ── Attaching packages ─────────────────────────────────────── tidyverse 1.3.1 ──
## ✓ tibble 3.1.0 ✓ dplyr 1.0.5
## ✓ tidyr 1.1.3 ✓ stringr 1.4.0
## ✓ readr 1.4.0 ✓ forcats 0.5.1
## ✓ purrr 0.3.4
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## x plotfunctions::alpha() masks ggplot2::alpha()
## x dplyr::collapse() masks nlme::collapse()
## x dplyr::filter() masks stats::filter()
## x dplyr::lag() masks stats::lag()
After the importation of the packages, let’s read the data.
# Importation des données
au <- read.table(file="au0b.tsv",sep="\t", fileEncoding = 'UTF-16', header = TRUE)
ai <- read.table(file="ai0a.tsv",sep="\t", fileEncoding = 'UTF-16', header = TRUE)
ei <- read.table(file="ei0a.tsv",sep="\t", fileEncoding = 'UTF-16', header = TRUE)
ou <- read.table(file="ou0a.tsv",sep="\t", fileEncoding = 'UTF-16', header = TRUE)
Change of the nature of the variables in the dataset.
The criterion is that all the numerical variables are numerated and the string varibles are factored.
Lets start from /ai/:
ai$sexe<-as.factor(ai$sexe)
ai$ton<-as.factor(ai$ton)
ai$pow<-as.factor(ai$pow)
ai$contexte.D<-as.factor(ai$contexte.D)
ai$contexte.G<-as.factor(ai$contexte.G)
ai$f1<-as.numeric(ai$f1)
## Warning: NAs introduced by coercion
ai$f2<-as.numeric(ai$f2)
## Warning: NAs introduced by coercion
ai$f3<-as.numeric(ai$f3)
## Warning: NAs introduced by coercion
ai$f0<-as.numeric(ai$f0)
## Warning: NAs introduced by coercion
head(ai)
## numero sexe locuteur diphtongue ton pow contexte.G contexte.D duree.ms.
## 1 1 F FS11 ai 4 f h 0 102.6625
## 2 1 F FS11 ai 4 f h 0 102.6625
## 3 1 F FS11 ai 4 f h 0 102.6625
## 4 1 F FS11 ai 4 f h 0 102.6625
## 5 1 F FS11 ai 4 f h 0 102.6625
## 6 1 F FS11 ai 4 f h 0 102.6625
## measurement.no f1 f2 f3 f0
## 1 0 770.9403 1592.367 2791.365 242.7606
## 2 1 789.5770 1654.538 2661.433 232.8865
## 3 2 790.5264 1676.141 2643.341 228.2137
## 4 3 792.7979 1771.876 2587.896 224.4104
## 5 4 786.4961 1814.919 2436.698 219.7656
## 6 5 760.0966 1827.338 2542.548 214.1222
In the dataset we can see the number of the data numero, the gender sexe, the speaker locuteur, the tone ton, the position in the word pow, the context before and after this diphthong contexte.G / contexte.D, the duration of the diphthongs duree.ms. and f0, f1, f2, f3 trajectories, each of them represented by 11 measurements taken at equal intervals (at 0%, 10%, 20%, . . . , 100%).
# Regroupement par les facteurs
ai.mas <- droplevels(subset(ai,sexe=="M"))
ai.fem <- droplevels(subset(ai,sexe=="F"))
Then the trajectories of f1 in different tones with regard of the sexes and the durations.
ggplot(ai.mas, aes(x=measurement.no, y=f1, group=numero,
alpha=duree.ms.)) +
facet_grid(~ton) + geom_line()
## Warning: Removed 28 row(s) containing missing values (geom_path).
ggplot(ai.fem, aes(x=measurement.no, y=f1, group=numero,
alpha=duree.ms.)) +
facet_grid(~ton) + geom_line()
## Warning: Removed 25 row(s) containing missing values (geom_path).
Then the first model with a basic smooth of tone 1 and difference smooths.
ai.mas$ton.ord <- as.ordered(ai.mas$ton)
contrasts(ai.mas$ton.ord) <- "contr.treatment"
ai.mas.gam.diff <- bam(f1 ~ ton.ord + s(measurement.no, bs="cr") +
s(measurement.no, by=ton.ord, bs="cr"),
data=ai.mas, method="ML")
summary.coefs(ai.mas.gam.diff)
## Parametric coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 508.92 20.76 24.514 < 2e-16 ***
## ton.ord2 120.43 22.33 5.393 8.47e-08 ***
## ton.ord3 173.89 23.07 7.536 1.01e-13 ***
## ton.ord4 109.93 21.51 5.110 3.81e-07 ***
##
## Approximate significance of smooth terms:
## edf Ref.df F p-value
## s(measurement.no) 4.434 5.392 5.263 5.67e-05 ***
## s(measurement.no):ton.ord2 1.017 1.032 10.413 0.00111 **
## s(measurement.no):ton.ord3 1.001 1.002 4.728 0.02980 *
## s(measurement.no):ton.ord4 3.570 4.385 7.968 1.47e-06 ***
Then the plots of predictions and difference smooth.
plot_smooth(ai.mas.gam.diff, view="measurement.no",
plot_all="ton.ord", rug=F)
## Summary:
## * ton.ord : factor; set to the value(s): 1, 2, 3, 4.
## * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000.
## * NOTE : No random effects in the model to cancel.
##
plot_diff(ai.mas.gam.diff, view="measurement.no",
comp=list(ton.ord=c("1","2")))
## Summary:
## * measurement.no : numeric predictor; with 100 values ranging from 0.000000 to 10.000000.
##
## measurement.no window(s) of significant difference(s):
## 0.000000 - 7.575758
plot_diff(ai.mas.gam.diff, view="measurement.no",
comp=list(ton.ord=c("2","3")))
## Summary:
## * measurement.no : numeric predictor; with 100 values ranging from 0.000000 to 10.000000.
##
## measurement.no window(s) of significant difference(s):
## 2.323232 - 10.000000
plot_diff(ai.mas.gam.diff, view="measurement.no",
comp=list(ton.ord=c("3","4")))
## Summary:
## * measurement.no : numeric predictor; with 100 values ranging from 0.000000 to 10.000000.
##
## measurement.no window(s) of significant difference(s):
## 0.000000 - 2.929293
## 6.969697 - 10.000000
The model that accounts for the influence of duree.ms. on the trajectories.
ai.mas.gam.dur <- bam(f1 ~ ton.ord + s(measurement.no, bs="cr") +
s(duree.ms., bs="cr") +
ti(measurement.no, duree.ms.) +
s(measurement.no, by=ton.ord, bs="cr"),
data=ai.mas, method="ML")
summary.coefs(ai.mas.gam.dur)
## Parametric coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 521.48 20.47 25.471 < 2e-16 ***
## ton.ord2 96.33 22.45 4.291 1.94e-05 ***
## ton.ord3 174.32 22.42 7.777 1.74e-14 ***
## ton.ord4 97.59 21.32 4.578 5.25e-06 ***
##
## Approximate significance of smooth terms:
## edf Ref.df F p-value
## s(measurement.no) 4.526 5.458 2.689 0.0153 *
## s(duree.ms.) 5.581 6.507 5.202 3.61e-05 ***
## ti(measurement.no,duree.ms.) 7.258 9.082 4.050 3.73e-05 ***
## s(measurement.no):ton.ord2 2.838 3.498 7.788 1.66e-05 ***
## s(measurement.no):ton.ord3 2.279 2.815 3.364 0.0173 *
## s(measurement.no):ton.ord4 4.009 4.879 6.286 1.52e-05 ***
The plots with regard the durations.
plot_smooth(ai.mas.gam.dur, view="measurement.no", cond=list(duree.ms.=170),
rug=F, col="red")
## Summary:
## * ton.ord : factor; set to the value(s): 4.
## * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000.
## * duree.ms. : numeric predictor; set to the value(s): 170.
## * NOTE : No random effects in the model to cancel.
##
plot_smooth(ai.mas.gam.dur, view="measurement.no", cond=list(duree.ms.=80),
rug=F, col="blue", add=T)
## Summary:
## * ton.ord : factor; set to the value(s): 4.
## * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000.
## * duree.ms. : numeric predictor; set to the value(s): 80.
## * NOTE : No random effects in the model to cancel.
##
fvisgam(ai.mas.gam.dur, view=c("measurement.no","duree.ms."),
ylim=quantile(ai.mas$duree.ms., c(0.1, 0.9)))
## Summary:
## * ton.ord : factor; set to the value(s): 4.
## * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000.
## * duree.ms. : numeric predictor; with 30 values ranging from 80.084553 to 197.994270.
## * NOTE : No random effects in the model to cancel.
##
## Warning in gradientLegend(c(min.z, max.z), n.seg = 3, pos = 0.875, color =
## pal, : Increase right margin to fit labels or decrease the number of decimals,
## see help(gradientLegend).
The model with regard of f0.
ai.mas.gam.f0 <- bam(f1 ~ ton.ord + s(measurement.no, bs="cr") +
s(f0, bs="cr") +
ti(measurement.no, f0) +
s(measurement.no, by=ton.ord, bs="cr"),
data=ai.mas, method="ML")
summary.coefs(ai.mas.gam.f0)
## Parametric coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 515.84 19.38 26.619 < 2e-16 ***
## ton.ord2 98.96 21.39 4.628 4.21e-06 ***
## ton.ord3 133.59 22.60 5.912 4.69e-09 ***
## ton.ord4 99.55 19.87 5.009 6.49e-07 ***
##
## Approximate significance of smooth terms:
## edf Ref.df F p-value
## s(measurement.no) 5.043 6.028 3.347 0.002781 **
## s(f0) 2.675 3.219 6.283 0.000272 ***
## ti(measurement.no,f0) 3.877 4.994 2.958 0.011798 *
## s(measurement.no):ton.ord2 3.114 3.839 7.162 2.42e-05 ***
## s(measurement.no):ton.ord3 2.262 2.803 6.325 0.000460 ***
## s(measurement.no):ton.ord4 4.213 5.118 8.474 < 2e-16 ***
The plot of such model.
plot_smooth(ai.mas.gam.f0, view="measurement.no", cond=list(f0=100),
rug=F, col="red")
## Summary:
## * ton.ord : factor; set to the value(s): 4.
## * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000.
## * f0 : numeric predictor; set to the value(s): 100.
## * NOTE : No random effects in the model to cancel.
##
plot_smooth(ai.mas.gam.f0, view="measurement.no", cond=list(f0=120),
rug=F, col="orange", add=T)
## Summary:
## * ton.ord : factor; set to the value(s): 4.
## * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000.
## * f0 : numeric predictor; set to the value(s): 120.
## * NOTE : No random effects in the model to cancel.
##
plot_smooth(ai.mas.gam.f0, view="measurement.no", cond=list(f0=140),
rug=F, col="yellow", add=T)
## Summary:
## * ton.ord : factor; set to the value(s): 4.
## * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000.
## * f0 : numeric predictor; set to the value(s): 140.
## * NOTE : No random effects in the model to cancel.
##
plot_smooth(ai.mas.gam.f0, view="measurement.no", cond=list(f0=180),
rug=F, col="green", add=T)
## Summary:
## * ton.ord : factor; set to the value(s): 4.
## * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000.
## * f0 : numeric predictor; set to the value(s): 180.
## * NOTE : No random effects in the model to cancel.
##
plot_smooth(ai.mas.gam.f0, view="measurement.no", cond=list(f0=200),
rug=F, col="blue", add=T)
## Summary:
## * ton.ord : factor; set to the value(s): 4.
## * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000.
## * f0 : numeric predictor; set to the value(s): 200.
## * NOTE : No random effects in the model to cancel.
##
fvisgam(ai.mas.gam.f0, view=c("measurement.no","f0"),
ylim=quantile(ai.mas$f0, c(0.1, 0.9), na.rm=TRUE))
## Summary:
## * ton.ord : factor; set to the value(s): 4.
## * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000.
## * f0 : numeric predictor; with 30 values ranging from 100.125696 to 212.400605.
## * NOTE : No random effects in the model to cancel.
##
## Warning in gradientLegend(c(min.z, max.z), n.seg = 3, pos = 0.875, color =
## pal, : Increase right margin to fit labels or decrease the number of decimals,
## see help(gradientLegend).
# random intercepts only
ai.mas.gam.int <- bam(f1 ~ ton.ord + s(measurement.no, bs="cr") +
s(f0, bs="cr") +
ti(measurement.no, f0) +
s(measurement.no, by=ton.ord, bs="cr") +
s(numero, bs="re"),
data=ai.mas, method="fREML")
summary.coefs(ai.mas.gam.int)
## Parametric coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 456.59 28.69 15.914 < 2e-16 ***
## ton.ord2 102.72 21.32 4.817 1.69e-06 ***
## ton.ord3 134.32 22.50 5.971 3.32e-09 ***
## ton.ord4 106.18 19.91 5.333 1.20e-07 ***
##
## Approximate significance of smooth terms:
## edf Ref.df F p-value
## s(measurement.no) 5.1635 6.149 3.407 0.002221 **
## s(f0) 2.7581 3.306 6.210 0.000251 ***
## ti(measurement.no,f0) 4.2159 5.440 2.916 0.011193 *
## s(measurement.no):ton.ord2 3.2824 4.041 7.045 1.4e-05 ***
## s(measurement.no):ton.ord3 2.5371 3.148 6.155 0.000312 ***
## s(measurement.no):ton.ord4 4.3255 5.243 8.514 < 2e-16 ***
## s(numero) 0.8844 1.000 7.653 0.003254 **
plot_smooth(ai.mas.gam.int, view="measurement.no", cond=list(f0=100),
rug=F, col="red")
## Summary:
## * ton.ord : factor; set to the value(s): 4.
## * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000.
## * f0 : numeric predictor; set to the value(s): 100.
## * numero : numeric predictor; set to the value(s): 164. (Might be canceled as random effect, check below.)
## * NOTE : The following random effects columns are canceled: s(numero)
##
plot_smooth(ai.mas.gam.int, view="measurement.no", cond=list(f0=120),
rug=F, col="orange", add=T)
## Summary:
## * ton.ord : factor; set to the value(s): 4.
## * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000.
## * f0 : numeric predictor; set to the value(s): 120.
## * numero : numeric predictor; set to the value(s): 164. (Might be canceled as random effect, check below.)
## * NOTE : The following random effects columns are canceled: s(numero)
##
plot_smooth(ai.mas.gam.int, view="measurement.no", cond=list(f0=140),
rug=F, col="yellow", add=T)
## Summary:
## * ton.ord : factor; set to the value(s): 4.
## * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000.
## * f0 : numeric predictor; set to the value(s): 140.
## * numero : numeric predictor; set to the value(s): 164. (Might be canceled as random effect, check below.)
## * NOTE : The following random effects columns are canceled: s(numero)
##
plot_smooth(ai.mas.gam.int, view="measurement.no", cond=list(f0=180),
rug=F, col="green", add=T)
## Summary:
## * ton.ord : factor; set to the value(s): 4.
## * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000.
## * f0 : numeric predictor; set to the value(s): 180.
## * numero : numeric predictor; set to the value(s): 164. (Might be canceled as random effect, check below.)
## * NOTE : The following random effects columns are canceled: s(numero)
##
plot_smooth(ai.mas.gam.int, view="measurement.no", cond=list(f0=200),
rug=F, col="blue", add=T)
## Summary:
## * ton.ord : factor; set to the value(s): 4.
## * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000.
## * f0 : numeric predictor; set to the value(s): 200.
## * numero : numeric predictor; set to the value(s): 164. (Might be canceled as random effect, check below.)
## * NOTE : The following random effects columns are canceled: s(numero)
##
fvisgam(ai.mas.gam.int, view=c("measurement.no","f0"),
ylim=quantile(ai.mas$f0, c(0.1, 0.9), na.rm=TRUE))
## Summary:
## * ton.ord : factor; set to the value(s): 4.
## * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000.
## * f0 : numeric predictor; with 30 values ranging from 100.125696 to 212.400605.
## * numero : numeric predictor; set to the value(s): 164. (Might be canceled as random effect, check below.)
## * NOTE : The following random effects columns are canceled: s(numero)
##
## Warning in gradientLegend(c(min.z, max.z), n.seg = 3, pos = 0.875, color =
## pal, : Increase right margin to fit labels or decrease the number of decimals,
## see help(gradientLegend).
# random intercepts + slopes
ai.mas.gam.slope <- bam(f1 ~ ton.ord + s(measurement.no, bs="cr") +
s(f0, bs="cr") +
ti(measurement.no, f0) +
s(measurement.no, by=ton.ord, bs="cr") +
s(numero, bs="re") +
s(numero, measurement.no, bs="re"),
data=ai.mas, method="fREML")
summary.coefs(ai.mas.gam.slope)
## Parametric coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 455.37 26.73 17.034 < 2e-16 ***
## ton.ord2 103.53 21.30 4.861 1.37e-06 ***
## ton.ord3 134.92 22.47 6.005 2.71e-09 ***
## ton.ord4 106.34 19.85 5.356 1.06e-07 ***
##
## Approximate significance of smooth terms:
## edf Ref.df F p-value
## s(measurement.no) 5.1531792 6.138 4.177 0.000328 ***
## s(f0) 2.7569210 3.305 6.089 0.000298 ***
## ti(measurement.no,f0) 4.1973202 5.423 2.853 0.012838 *
## s(measurement.no):ton.ord2 3.2594077 4.013 6.791 2.16e-05 ***
## s(measurement.no):ton.ord3 2.5316088 3.141 6.168 0.000308 ***
## s(measurement.no):ton.ord4 4.3419115 5.262 8.353 < 2e-16 ***
## s(numero) 0.0002281 1.000 0.000 0.606058
## s(numero,measurement.no) 0.9128615 1.000 10.485 0.000716 ***
plot_smooth(ai.mas.gam.slope, view="measurement.no", cond=list(f0=100),
rug=F, col="red")
## Summary:
## * ton.ord : factor; set to the value(s): 4.
## * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000.
## * f0 : numeric predictor; set to the value(s): 100.
## * numero : numeric predictor; set to the value(s): 164. (Might be canceled as random effect, check below.)
## * NOTE : The following random effects columns are canceled: s(numero),s(numero,measurement.no)
##
plot_smooth(ai.mas.gam.slope, view="measurement.no", cond=list(f0=120),
rug=F, col="orange", add=T)
## Summary:
## * ton.ord : factor; set to the value(s): 4.
## * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000.
## * f0 : numeric predictor; set to the value(s): 120.
## * numero : numeric predictor; set to the value(s): 164. (Might be canceled as random effect, check below.)
## * NOTE : The following random effects columns are canceled: s(numero),s(numero,measurement.no)
##
plot_smooth(ai.mas.gam.slope, view="measurement.no", cond=list(f0=140),
rug=F, col="yellow", add=T)
## Summary:
## * ton.ord : factor; set to the value(s): 4.
## * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000.
## * f0 : numeric predictor; set to the value(s): 140.
## * numero : numeric predictor; set to the value(s): 164. (Might be canceled as random effect, check below.)
## * NOTE : The following random effects columns are canceled: s(numero),s(numero,measurement.no)
##
plot_smooth(ai.mas.gam.slope, view="measurement.no", cond=list(f0=180),
rug=F, col="green", add=T)
## Summary:
## * ton.ord : factor; set to the value(s): 4.
## * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000.
## * f0 : numeric predictor; set to the value(s): 180.
## * numero : numeric predictor; set to the value(s): 164. (Might be canceled as random effect, check below.)
## * NOTE : The following random effects columns are canceled: s(numero),s(numero,measurement.no)
##
plot_smooth(ai.mas.gam.slope, view="measurement.no", cond=list(f0=200),
rug=F, col="blue", add=T)
## Summary:
## * ton.ord : factor; set to the value(s): 4.
## * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000.
## * f0 : numeric predictor; set to the value(s): 200.
## * numero : numeric predictor; set to the value(s): 164. (Might be canceled as random effect, check below.)
## * NOTE : The following random effects columns are canceled: s(numero),s(numero,measurement.no)
##
fvisgam(ai.mas.gam.slope, view=c("measurement.no","f0"),
ylim=quantile(ai.mas$f0, c(0.1, 0.9), na.rm=TRUE))
## Summary:
## * ton.ord : factor; set to the value(s): 4.
## * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000.
## * f0 : numeric predictor; with 30 values ranging from 100.125696 to 212.400605.
## * numero : numeric predictor; set to the value(s): 164. (Might be canceled as random effect, check below.)
## * NOTE : The following random effects columns are canceled: s(numero),s(numero,measurement.no)
##
## Warning in gradientLegend(c(min.z, max.z), n.seg = 3, pos = 0.875, color =
## pal, : Increase right margin to fit labels or decrease the number of decimals,
## see help(gradientLegend).
plot_smooth(ai.mas.gam.slope, view="measurement.no", plot_all="ton.ord",
rug=F, rm.ranef=T)
## Summary:
## * ton.ord : factor; set to the value(s): 1, 2, 3, 4.
## * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000.
## * f0 : numeric predictor; set to the value(s): 137.402261031236.
## * numero : numeric predictor; set to the value(s): 164. (Might be canceled as random effect, check below.)
## * NOTE : The following random effects columns are canceled: s(numero),s(numero,measurement.no)
##
#plot_diff(ai.mas.gam.slope, view="measurement.no",
#comp=list(ton.ord = c("2","4")), rm.ranef=T)
#ai.mas.gam.smooth <- bam(f1 ~ ton.ord + s(measurement.no, bs="cr") +
# s(f0, bs="cr") +
# ti(measurement.no, f0) +
# s(measurement.no, by=ton.ord, bs="cr") +
# s(measurement.no, numero, bs="fs", xt="cr", m=1, k=5),
# data=ai.mas, method="fREML")
#summary.coefs(ai.mas.gam.smooth)
ai.mas$start.event <- ai.mas$measurement.no==0
r1 <- start_value_rho(ai.mas.gam.f0)
ai.mas.gam.AR <- bam(f1 ~ ton.ord + s(measurement.no, bs="cr") +
s(f0, bs="cr") +
ti(measurement.no, f0) +
s(measurement.no, by=ton.ord, bs="cr"),
data=ai.mas, method="fREML",
rho=r1, AR.start=ai.mas$start.event)
summary.coefs(ai.mas.gam.AR)
## Parametric coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 528.66 28.03 18.858 < 2e-16 ***
## ton.ord2 91.67 30.74 2.982 0.002937 **
## ton.ord3 115.66 32.36 3.574 0.000369 ***
## ton.ord4 85.10 28.73 2.961 0.003137 **
##
## Approximate significance of smooth terms:
## edf Ref.df F p-value
## s(measurement.no) 6.036 7.043 3.644 0.000664 ***
## s(f0) 1.878 2.303 2.973 0.056214 .
## ti(measurement.no,f0) 4.238 5.488 2.497 0.025727 *
## s(measurement.no):ton.ord2 3.946 4.932 6.458 9.21e-06 ***
## s(measurement.no):ton.ord3 3.172 4.024 4.928 0.000613 ***
## s(measurement.no):ton.ord4 5.015 6.080 7.806 < 2e-16 ***
plot_smooth(ai.mas.gam.AR, view="measurement.no", plot_all="ton.ord",
rug=F, rm.ranef=T)
## Summary:
## * ton.ord : factor; set to the value(s): 1, 2, 3, 4.
## * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000.
## * f0 : numeric predictor; set to the value(s): 137.402261031236.
## * NOTE : No random effects in the model to cancel.
##
plot_diff(ai.mas.gam.AR, view="measurement.no",
comp=list(ton.ord = c("2","4")))
## Summary:
## * measurement.no : numeric predictor; with 100 values ranging from 0.000000 to 10.000000.
## * f0 : numeric predictor; set to the value(s): 137.402261031236.
##
## measurement.no window(s) of significant difference(s):
## 0.000000 - 1.515152
plot_smooth(ai.mas.gam.AR, view="measurement.no", cond=list(f0=100),
rug=F, col="red")
## Summary:
## * ton.ord : factor; set to the value(s): 4.
## * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000.
## * f0 : numeric predictor; set to the value(s): 100.
## * NOTE : No random effects in the model to cancel.
##
plot_smooth(ai.mas.gam.AR, view="measurement.no", cond=list(f0=120),
rug=F, col="orange", add=T)
## Summary:
## * ton.ord : factor; set to the value(s): 4.
## * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000.
## * f0 : numeric predictor; set to the value(s): 120.
## * NOTE : No random effects in the model to cancel.
##
plot_smooth(ai.mas.gam.AR, view="measurement.no", cond=list(f0=140),
rug=F, col="yellow", add=T)
## Summary:
## * ton.ord : factor; set to the value(s): 4.
## * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000.
## * f0 : numeric predictor; set to the value(s): 140.
## * NOTE : No random effects in the model to cancel.
##
plot_smooth(ai.mas.gam.AR, view="measurement.no", cond=list(f0=180),
rug=F, col="green", add=T)
## Summary:
## * ton.ord : factor; set to the value(s): 4.
## * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000.
## * f0 : numeric predictor; set to the value(s): 180.
## * NOTE : No random effects in the model to cancel.
##
plot_smooth(ai.mas.gam.AR, view="measurement.no", cond=list(f0=200),
rug=F, col="blue", add=T)
## Summary:
## * ton.ord : factor; set to the value(s): 4.
## * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000.
## * f0 : numeric predictor; set to the value(s): 200.
## * NOTE : No random effects in the model to cancel.
##
fvisgam(ai.mas.gam.AR, view=c("measurement.no","f0"),
ylim=quantile(ai.mas$f0, c(0.1, 0.9), na.rm=TRUE))
## Summary:
## * ton.ord : factor; set to the value(s): 4.
## * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000.
## * f0 : numeric predictor; with 30 values ranging from 100.125696 to 212.400605.
## * NOTE : No random effects in the model to cancel.
##
## Warning in gradientLegend(c(min.z, max.z), n.seg = 3, pos = 0.875, color =
## pal, : Increase right margin to fit labels or decrease the number of decimals,
## see help(gradientLegend).
We now focus on the central portion of the diphthongs, which means the portions without the inluence of the consonant contexts.
ai.central<-droplevels(subset(ai,measurement.no>=2))
ai.central<-droplevels(subset(ai.central,measurement.no<=8))
ai.central.mas <- droplevels(subset(ai.central,sexe=="M"))
ai.central.fem <- droplevels(subset(ai.central,sexe=="F"))
ai.central.mas$ton.ord <- as.ordered(ai.central.mas$ton)
contrasts(ai.central.mas$ton.ord) <- "contr.treatment"
ai.central.mas.gam.diff <- bam(f1 ~ ton.ord + s(measurement.no, bs="cr",k=6) +
s(measurement.no, by=ton.ord, bs="cr",k=6),
data=ai.central.mas, method="ML")
summary.coefs(ai.central.mas.gam.diff)
## Parametric coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 472.08 19.51 24.201 < 2e-16 ***
## ton.ord2 171.54 20.96 8.184 1.28e-15 ***
## ton.ord3 225.45 21.68 10.399 < 2e-16 ***
## ton.ord4 187.63 20.19 9.292 < 2e-16 ***
##
## Approximate significance of smooth terms:
## edf Ref.df F p-value
## s(measurement.no) 2.404 2.924 9.433 1.01e-05 ***
## s(measurement.no):ton.ord2 1.002 1.004 0.147 0.7039
## s(measurement.no):ton.ord3 1.002 1.005 1.309 0.2530
## s(measurement.no):ton.ord4 2.529 3.067 2.551 0.0533 .
plot_smooth(ai.central.mas.gam.diff, view="measurement.no",
plot_all="ton.ord", rug=F)
## Summary:
## * ton.ord : factor; set to the value(s): 1, 2, 3, 4.
## * measurement.no : numeric predictor; with 30 values ranging from 2.000000 to 8.000000.
## * NOTE : No random effects in the model to cancel.
##
plot_diff(ai.central.mas.gam.diff, view="measurement.no",
comp=list(ton.ord=c("1","2")))
## Summary:
## * measurement.no : numeric predictor; with 100 values ranging from 2.000000 to 8.000000.
##
## measurement.no window(s) of significant difference(s):
## 2.000000 - 8.000000
plot_diff(ai.central.mas.gam.diff, view="measurement.no",
comp=list(ton.ord=c("2","3")))
## Summary:
## * measurement.no : numeric predictor; with 100 values ranging from 2.000000 to 8.000000.
##
## measurement.no window(s) of significant difference(s):
## 2.848485 - 8.000000
plot_diff(ai.central.mas.gam.diff, view="measurement.no",
comp=list(ton.ord=c("3","4")))
## Summary:
## * measurement.no : numeric predictor; with 100 values ranging from 2.000000 to 8.000000.
##
## measurement.no window(s) of significant difference(s):
## 2.000000 - 3.030303
## 5.818182 - 8.000000
ai.central.mas.gam.dur <- bam(f1 ~ ton.ord + s(measurement.no, bs="cr",k=6) +
s(duree.ms., bs="cr",k=6) +
ti(measurement.no, duree.ms.,k=6) +
s(measurement.no, by=ton.ord, bs="cr",k=6),
data=ai.central.mas, method="ML")
summary.coefs(ai.central.mas.gam.dur)
## Parametric coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 483.05 19.43 24.864 < 2e-16 ***
## ton.ord2 153.92 21.26 7.239 1.19e-12 ***
## ton.ord3 225.56 21.26 10.609 < 2e-16 ***
## ton.ord4 175.66 20.20 8.697 < 2e-16 ***
##
## Approximate significance of smooth terms:
## edf Ref.df F p-value
## s(measurement.no) 2.393 2.910 10.314 3.87e-06 ***
## s(duree.ms.) 4.484 4.852 4.597 0.000297 ***
## ti(measurement.no,duree.ms.) 1.236 1.431 5.669 0.006689 **
## s(measurement.no):ton.ord2 1.000 1.000 0.094 0.759550
## s(measurement.no):ton.ord3 1.000 1.001 1.487 0.223105
## s(measurement.no):ton.ord4 2.587 3.131 2.965 0.029587 *
plot_smooth(ai.central.mas.gam.dur, view="measurement.no", cond=list(duree.ms.=170),
rug=F, col="red")
## Summary:
## * ton.ord : factor; set to the value(s): 4.
## * measurement.no : numeric predictor; with 30 values ranging from 2.000000 to 8.000000.
## * duree.ms. : numeric predictor; set to the value(s): 170.
## * NOTE : No random effects in the model to cancel.
##
plot_smooth(ai.central.mas.gam.dur, view="measurement.no", cond=list(duree.ms.=80),
rug=F, col="blue", add=T)
## Summary:
## * ton.ord : factor; set to the value(s): 4.
## * measurement.no : numeric predictor; with 30 values ranging from 2.000000 to 8.000000.
## * duree.ms. : numeric predictor; set to the value(s): 80.
## * NOTE : No random effects in the model to cancel.
##
fvisgam(ai.central.mas.gam.dur, view=c("measurement.no","duree.ms."),
ylim=quantile(ai.central.mas$duree.ms., c(0.1, 0.9)))
## Summary:
## * ton.ord : factor; set to the value(s): 4.
## * measurement.no : numeric predictor; with 30 values ranging from 2.000000 to 8.000000.
## * duree.ms. : numeric predictor; with 30 values ranging from 80.084553 to 197.994270.
## * NOTE : No random effects in the model to cancel.
##
## Warning in gradientLegend(c(min.z, max.z), n.seg = 3, pos = 0.875, color =
## pal, : Increase right margin to fit labels or decrease the number of decimals,
## see help(gradientLegend).
ai.central.mas.gam.f0 <- bam(f1 ~ ton.ord + s(measurement.no, bs="cr",k=6) +
s(f0, bs="cr",k=6) +
ti(measurement.no, f0,k=6) +
s(measurement.no, by=ton.ord, bs="cr",k=6),
data=ai.central.mas, method="ML")
summary.coefs(ai.central.mas.gam.f0)
## Parametric coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 480.55 18.43 26.068 < 2e-16 ***
## ton.ord2 159.40 20.21 7.886 1.3e-14 ***
## ton.ord3 182.35 21.24 8.583 < 2e-16 ***
## ton.ord4 178.19 18.85 9.455 < 2e-16 ***
##
## Approximate significance of smooth terms:
## edf Ref.df F p-value
## s(measurement.no) 2.449 2.975 7.785 5.8e-05 ***
## s(f0) 2.888 3.362 5.997 0.000297 ***
## ti(measurement.no,f0) 1.005 1.010 6.139 0.013357 *
## s(measurement.no):ton.ord2 1.000 1.000 0.233 0.629530
## s(measurement.no):ton.ord3 1.000 1.001 0.006 0.938828
## s(measurement.no):ton.ord4 2.698 3.256 2.878 0.031657 *
plot_smooth(ai.central.mas.gam.f0, view="measurement.no", cond=list(f0=100),
rug=F, col="red")
## Summary:
## * ton.ord : factor; set to the value(s): 4.
## * measurement.no : numeric predictor; with 30 values ranging from 2.000000 to 8.000000.
## * f0 : numeric predictor; set to the value(s): 100.
## * NOTE : No random effects in the model to cancel.
##
plot_smooth(ai.central.mas.gam.f0, view="measurement.no", cond=list(f0=120),
rug=F, col="orange", add=T)
## Summary:
## * ton.ord : factor; set to the value(s): 4.
## * measurement.no : numeric predictor; with 30 values ranging from 2.000000 to 8.000000.
## * f0 : numeric predictor; set to the value(s): 120.
## * NOTE : No random effects in the model to cancel.
##
plot_smooth(ai.central.mas.gam.f0, view="measurement.no", cond=list(f0=140),
rug=F, col="yellow", add=T)
## Summary:
## * ton.ord : factor; set to the value(s): 4.
## * measurement.no : numeric predictor; with 30 values ranging from 2.000000 to 8.000000.
## * f0 : numeric predictor; set to the value(s): 140.
## * NOTE : No random effects in the model to cancel.
##
plot_smooth(ai.central.mas.gam.f0, view="measurement.no", cond=list(f0=180),
rug=F, col="green", add=T)
## Summary:
## * ton.ord : factor; set to the value(s): 4.
## * measurement.no : numeric predictor; with 30 values ranging from 2.000000 to 8.000000.
## * f0 : numeric predictor; set to the value(s): 180.
## * NOTE : No random effects in the model to cancel.
##
plot_smooth(ai.central.mas.gam.f0, view="measurement.no", cond=list(f0=200),
rug=F, col="blue", add=T)
## Summary:
## * ton.ord : factor; set to the value(s): 4.
## * measurement.no : numeric predictor; with 30 values ranging from 2.000000 to 8.000000.
## * f0 : numeric predictor; set to the value(s): 200.
## * NOTE : No random effects in the model to cancel.
##
fvisgam(ai.central.mas.gam.f0, view=c("measurement.no","f0"),
ylim=quantile(ai.central.mas$f0, c(0.1, 0.9), na.rm=TRUE))
## Summary:
## * ton.ord : factor; set to the value(s): 4.
## * measurement.no : numeric predictor; with 30 values ranging from 2.000000 to 8.000000.
## * f0 : numeric predictor; with 30 values ranging from 99.155553 to 204.798228.
## * NOTE : No random effects in the model to cancel.
##
## Warning in gradientLegend(c(min.z, max.z), n.seg = 3, pos = 0.875, color =
## pal, : Increase right margin to fit labels or decrease the number of decimals,
## see help(gradientLegend).
Now we look at the trajectories of f2 in different tones with regard of the sexes and the durations.
ggplot(ai.mas, aes(x=measurement.no, y=f2, group=numero,
alpha=duree.ms.)) +
facet_grid(~ton) + geom_line()
## Warning: Removed 28 row(s) containing missing values (geom_path).
ggplot(ai.fem, aes(x=measurement.no, y=f2, group=numero,
alpha=duree.ms.)) +
facet_grid(~ton) + geom_line()
## Warning: Removed 25 row(s) containing missing values (geom_path).
Then we fit the same model with a basic smooth of tone 1 and difference smooths.
ai.mas.f2.gam.diff <- bam(f2 ~ ton.ord + s(measurement.no, bs="cr") +
s(measurement.no, by=ton.ord, bs="cr"),
data=ai.mas, method="ML")
summary.coefs(ai.mas.f2.gam.diff)
## Parametric coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 1808.78 25.76 70.213 < 2e-16 ***
## ton.ord2 -190.78 27.71 -6.885 9.73e-12 ***
## ton.ord3 -182.21 28.63 -6.364 2.89e-10 ***
## ton.ord4 -157.18 26.70 -5.887 5.22e-09 ***
##
## Approximate significance of smooth terms:
## edf Ref.df F p-value
## s(measurement.no) 3.783 4.654 6.929 7.58e-06 ***
## s(measurement.no):ton.ord2 1.000 1.001 0.783 0.376
## s(measurement.no):ton.ord3 1.001 1.001 0.225 0.635
## s(measurement.no):ton.ord4 1.004 1.008 0.360 0.550
Now the plots of f2 with different tones.
plot_smooth(ai.mas.f2.gam.diff, view="measurement.no",
plot_all="ton.ord", rug=F)
## Summary:
## * ton.ord : factor; set to the value(s): 1, 2, 3, 4.
## * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000.
## * NOTE : No random effects in the model to cancel.
##
plot_diff(ai.mas.f2.gam.diff, view="measurement.no",
comp=list(ton.ord=c("1","2")))
## Summary:
## * measurement.no : numeric predictor; with 100 values ranging from 0.000000 to 10.000000.
##
## measurement.no window(s) of significant difference(s):
## 0.000000 - 10.000000
plot_diff(ai.mas.f2.gam.diff, view="measurement.no",
comp=list(ton.ord=c("2","3")))
## Summary:
## * measurement.no : numeric predictor; with 100 values ranging from 0.000000 to 10.000000.
##
## measurement.no window(s) of significant difference(s):
## 0.000000 - 2.020202
plot_diff(ai.mas.f2.gam.diff, view="measurement.no",
comp=list(ton.ord=c("3","4")))
## Summary:
## * measurement.no : numeric predictor; with 100 values ranging from 0.000000 to 10.000000.
##
## measurement.no window(s) of significant difference(s):
## 5.252525 - 10.000000
The model that accounts for the influence of duree.ms. on the trajectories.
ai.mas.f2.gam.dur <- bam(f2 ~ ton.ord + s(measurement.no, bs="cr") +
s(duree.ms., bs="cr") +
ti(measurement.no, duree.ms.) +
s(measurement.no, by=ton.ord, bs="cr"),
data=ai.mas, method="ML")
summary.coefs(ai.mas.f2.gam.dur)
## Parametric coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 1826.36 25.30 72.182 < 2e-16 ***
## ton.ord2 -210.79 27.64 -7.627 5.22e-14 ***
## ton.ord3 -190.56 27.77 -6.861 1.15e-11 ***
## ton.ord4 -178.75 26.32 -6.793 1.81e-11 ***
##
## Approximate significance of smooth terms:
## edf Ref.df F p-value
## s(measurement.no) 3.893 4.783 8.213 6.26e-07 ***
## s(duree.ms.) 3.903 4.707 5.118 0.000252 ***
## ti(measurement.no,duree.ms.) 2.869 4.012 12.552 < 2e-16 ***
## s(measurement.no):ton.ord2 1.001 1.002 1.332 0.248618
## s(measurement.no):ton.ord3 1.001 1.003 0.351 0.553691
## s(measurement.no):ton.ord4 1.001 1.003 0.038 0.847241
The plots with regard the durations.
plot_smooth(ai.mas.f2.gam.dur, view="measurement.no", cond=list(duree.ms.=170),
rug=F, col="red")
## Summary:
## * ton.ord : factor; set to the value(s): 4.
## * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000.
## * duree.ms. : numeric predictor; set to the value(s): 170.
## * NOTE : No random effects in the model to cancel.
##
plot_smooth(ai.mas.f2.gam.dur, view="measurement.no", cond=list(duree.ms.=80),
rug=F, col="blue", add=T)
## Summary:
## * ton.ord : factor; set to the value(s): 4.
## * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000.
## * duree.ms. : numeric predictor; set to the value(s): 80.
## * NOTE : No random effects in the model to cancel.
##
fvisgam(ai.mas.f2.gam.dur, view=c("measurement.no","duree.ms."),
ylim=quantile(ai.mas$duree.ms., c(0.1, 0.9)))
## Summary:
## * ton.ord : factor; set to the value(s): 4.
## * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000.
## * duree.ms. : numeric predictor; with 30 values ranging from 80.084553 to 197.994270.
## * NOTE : No random effects in the model to cancel.
##
## Warning in gradientLegend(c(min.z, max.z), n.seg = 3, pos = 0.875, color =
## pal, : Increase right margin to fit labels or decrease the number of decimals,
## see help(gradientLegend).
ai.mas.f2.gam.f0 <- bam(f2 ~ ton.ord + s(measurement.no, bs="cr") +
s(f0, bs="cr") +
ti(measurement.no, f0) +
s(measurement.no, by=ton.ord, bs="cr"),
data=ai.mas, method="ML")
summary.coefs(ai.mas.f2.gam.f0)
## Parametric coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 1809.15 24.68 73.316 < 2e-16 ***
## ton.ord2 -187.20 27.28 -6.862 1.21e-11 ***
## ton.ord3 -201.12 28.74 -6.999 4.80e-12 ***
## ton.ord4 -156.85 25.33 -6.191 8.79e-10 ***
##
## Approximate significance of smooth terms:
## edf Ref.df F p-value
## s(measurement.no) 4.100 5.036 9.733 < 2e-16 ***
## s(f0) 5.833 6.673 5.023 2.82e-05 ***
## ti(measurement.no,f0) 2.307 2.805 2.708 0.0422 *
## s(measurement.no):ton.ord2 1.001 1.002 0.005 0.9472
## s(measurement.no):ton.ord3 1.001 1.001 0.034 0.8553
## s(measurement.no):ton.ord4 1.004 1.008 0.011 0.9373
plot_smooth(ai.mas.f2.gam.f0, view="measurement.no", cond=list(f0=100),
rug=F, col="red")
## Summary:
## * ton.ord : factor; set to the value(s): 4.
## * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000.
## * f0 : numeric predictor; set to the value(s): 100.
## * NOTE : No random effects in the model to cancel.
##
plot_smooth(ai.mas.f2.gam.f0, view="measurement.no", cond=list(f0=120),
rug=F, col="orange", add=T)
## Summary:
## * ton.ord : factor; set to the value(s): 4.
## * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000.
## * f0 : numeric predictor; set to the value(s): 120.
## * NOTE : No random effects in the model to cancel.
##
plot_smooth(ai.mas.f2.gam.f0, view="measurement.no", cond=list(f0=140),
rug=F, col="yellow", add=T)
## Summary:
## * ton.ord : factor; set to the value(s): 4.
## * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000.
## * f0 : numeric predictor; set to the value(s): 140.
## * NOTE : No random effects in the model to cancel.
##
plot_smooth(ai.mas.f2.gam.f0, view="measurement.no", cond=list(f0=180),
rug=F, col="green", add=T)
## Summary:
## * ton.ord : factor; set to the value(s): 4.
## * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000.
## * f0 : numeric predictor; set to the value(s): 180.
## * NOTE : No random effects in the model to cancel.
##
plot_smooth(ai.mas.f2.gam.f0, view="measurement.no", cond=list(f0=200),
rug=F, col="blue", add=T)
## Summary:
## * ton.ord : factor; set to the value(s): 4.
## * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000.
## * f0 : numeric predictor; set to the value(s): 200.
## * NOTE : No random effects in the model to cancel.
##
fvisgam(ai.mas.f2.gam.f0, view=c("measurement.no","f0"),
ylim=quantile(ai.mas$f0, c(0.1, 0.9), na.rm=TRUE))
## Summary:
## * ton.ord : factor; set to the value(s): 4.
## * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000.
## * f0 : numeric predictor; with 30 values ranging from 100.125696 to 212.400605.
## * NOTE : No random effects in the model to cancel.
##
## Warning in gradientLegend(c(min.z, max.z), n.seg = 3, pos = 0.875, color =
## pal, : Increase right margin to fit labels or decrease the number of decimals,
## see help(gradientLegend).
# random intercepts only
ai.mas.gam.f2.int <- bam(f2 ~ ton.ord + s(measurement.no, bs="cr") +
s(f0, bs="cr") +
ti(measurement.no, f0) +
s(measurement.no, by=ton.ord, bs="cr") +
s(numero, bs="re"),
data=ai.mas, method="fREML")
summary.coefs(ai.mas.gam.f2.int)
## Parametric coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 1809.17 24.68 73.315 < 2e-16 ***
## ton.ord2 -187.22 27.28 -6.863 1.20e-11 ***
## ton.ord3 -201.16 28.74 -7.000 4.76e-12 ***
## ton.ord4 -156.88 25.33 -6.192 8.74e-10 ***
##
## Approximate significance of smooth terms:
## edf Ref.df F p-value
## s(measurement.no) 4.127e+00 5.067 9.697 < 2e-16 ***
## s(f0) 5.824e+00 6.663 5.023 2.86e-05 ***
## ti(measurement.no,f0) 2.327e+00 2.827 2.705 0.0422 *
## s(measurement.no):ton.ord2 1.000e+00 1.000 0.005 0.9413
## s(measurement.no):ton.ord3 1.000e+00 1.000 0.034 0.8542
## s(measurement.no):ton.ord4 1.000e+00 1.000 0.011 0.9171
## s(numero) 2.024e-05 1.000 0.000 0.6922
plot_smooth(ai.mas.gam.f2.int, view="measurement.no", cond=list(f0=100),
rug=F, col="red")
## Summary:
## * ton.ord : factor; set to the value(s): 4.
## * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000.
## * f0 : numeric predictor; set to the value(s): 100.
## * numero : numeric predictor; set to the value(s): 164. (Might be canceled as random effect, check below.)
## * NOTE : The following random effects columns are canceled: s(numero)
##
plot_smooth(ai.mas.gam.f2.int, view="measurement.no", cond=list(f0=120),
rug=F, col="orange", add=T)
## Summary:
## * ton.ord : factor; set to the value(s): 4.
## * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000.
## * f0 : numeric predictor; set to the value(s): 120.
## * numero : numeric predictor; set to the value(s): 164. (Might be canceled as random effect, check below.)
## * NOTE : The following random effects columns are canceled: s(numero)
##
plot_smooth(ai.mas.gam.f2.int, view="measurement.no", cond=list(f0=140),
rug=F, col="yellow", add=T)
## Summary:
## * ton.ord : factor; set to the value(s): 4.
## * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000.
## * f0 : numeric predictor; set to the value(s): 140.
## * numero : numeric predictor; set to the value(s): 164. (Might be canceled as random effect, check below.)
## * NOTE : The following random effects columns are canceled: s(numero)
##
plot_smooth(ai.mas.gam.f2.int, view="measurement.no", cond=list(f0=180),
rug=F, col="green", add=T)
## Summary:
## * ton.ord : factor; set to the value(s): 4.
## * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000.
## * f0 : numeric predictor; set to the value(s): 180.
## * numero : numeric predictor; set to the value(s): 164. (Might be canceled as random effect, check below.)
## * NOTE : The following random effects columns are canceled: s(numero)
##
plot_smooth(ai.mas.gam.f2.int, view="measurement.no", cond=list(f0=200),
rug=F, col="blue", add=T)
## Summary:
## * ton.ord : factor; set to the value(s): 4.
## * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000.
## * f0 : numeric predictor; set to the value(s): 200.
## * numero : numeric predictor; set to the value(s): 164. (Might be canceled as random effect, check below.)
## * NOTE : The following random effects columns are canceled: s(numero)
##
fvisgam(ai.mas.gam.f2.int, view=c("measurement.no","f0"),
ylim=quantile(ai.mas$f0, c(0.1, 0.9), na.rm=TRUE))
## Summary:
## * ton.ord : factor; set to the value(s): 4.
## * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000.
## * f0 : numeric predictor; with 30 values ranging from 100.125696 to 212.400605.
## * numero : numeric predictor; set to the value(s): 164. (Might be canceled as random effect, check below.)
## * NOTE : The following random effects columns are canceled: s(numero)
##
## Warning in gradientLegend(c(min.z, max.z), n.seg = 3, pos = 0.875, color =
## pal, : Increase right margin to fit labels or decrease the number of decimals,
## see help(gradientLegend).
# random intercepts + slopes
ai.mas.gam.f2.slope <- bam(f2 ~ ton.ord + s(measurement.no, bs="cr") +
s(f0, bs="cr") +
ti(measurement.no, f0) +
s(measurement.no, by=ton.ord, bs="cr") +
s(numero, bs="re") +
s(numero, measurement.no, bs="re"),
data=ai.mas, method="fREML")
summary.coefs(ai.mas.gam.f2.slope)
## Parametric coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 1783.01 31.63 56.364 < 2e-16 ***
## ton.ord2 -185.70 27.28 -6.806 1.75e-11 ***
## ton.ord3 -200.83 28.72 -6.994 4.98e-12 ***
## ton.ord4 -154.22 25.39 -6.073 1.80e-09 ***
##
## Approximate significance of smooth terms:
## edf Ref.df F p-value
## s(measurement.no) 4.124e+00 5.064 7.800 4.40e-07 ***
## s(f0) 5.768e+00 6.604 4.719 6.49e-05 ***
## ti(measurement.no,f0) 2.322e+00 2.822 2.658 0.0451 *
## s(measurement.no):ton.ord2 1.000e+00 1.000 0.022 0.8812
## s(measurement.no):ton.ord3 1.000e+00 1.000 0.024 0.8774
## s(measurement.no):ton.ord4 1.000e+00 1.001 0.033 0.8568
## s(numero) 3.609e-05 1.000 0.000 0.4983
## s(numero,measurement.no) 6.351e-01 1.000 1.741 0.0975 .
plot_smooth(ai.mas.gam.f2.slope, view="measurement.no", cond=list(f0=100),
rug=F, col="red")
## Summary:
## * ton.ord : factor; set to the value(s): 4.
## * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000.
## * f0 : numeric predictor; set to the value(s): 100.
## * numero : numeric predictor; set to the value(s): 164. (Might be canceled as random effect, check below.)
## * NOTE : The following random effects columns are canceled: s(numero),s(numero,measurement.no)
##
plot_smooth(ai.mas.gam.f2.slope, view="measurement.no", cond=list(f0=120),
rug=F, col="orange", add=T)
## Summary:
## * ton.ord : factor; set to the value(s): 4.
## * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000.
## * f0 : numeric predictor; set to the value(s): 120.
## * numero : numeric predictor; set to the value(s): 164. (Might be canceled as random effect, check below.)
## * NOTE : The following random effects columns are canceled: s(numero),s(numero,measurement.no)
##
plot_smooth(ai.mas.gam.f2.slope, view="measurement.no", cond=list(f0=140),
rug=F, col="yellow", add=T)
## Summary:
## * ton.ord : factor; set to the value(s): 4.
## * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000.
## * f0 : numeric predictor; set to the value(s): 140.
## * numero : numeric predictor; set to the value(s): 164. (Might be canceled as random effect, check below.)
## * NOTE : The following random effects columns are canceled: s(numero),s(numero,measurement.no)
##
plot_smooth(ai.mas.gam.f2.slope, view="measurement.no", cond=list(f0=180),
rug=F, col="green", add=T)
## Summary:
## * ton.ord : factor; set to the value(s): 4.
## * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000.
## * f0 : numeric predictor; set to the value(s): 180.
## * numero : numeric predictor; set to the value(s): 164. (Might be canceled as random effect, check below.)
## * NOTE : The following random effects columns are canceled: s(numero),s(numero,measurement.no)
##
plot_smooth(ai.mas.gam.f2.slope, view="measurement.no", cond=list(f0=200),
rug=F, col="blue", add=T)
## Summary:
## * ton.ord : factor; set to the value(s): 4.
## * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000.
## * f0 : numeric predictor; set to the value(s): 200.
## * numero : numeric predictor; set to the value(s): 164. (Might be canceled as random effect, check below.)
## * NOTE : The following random effects columns are canceled: s(numero),s(numero,measurement.no)
##
fvisgam(ai.mas.gam.f2.slope, view=c("measurement.no","f0"),
ylim=quantile(ai.mas$f0, c(0.1, 0.9), na.rm=TRUE))
## Summary:
## * ton.ord : factor; set to the value(s): 4.
## * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000.
## * f0 : numeric predictor; with 30 values ranging from 100.125696 to 212.400605.
## * numero : numeric predictor; set to the value(s): 164. (Might be canceled as random effect, check below.)
## * NOTE : The following random effects columns are canceled: s(numero),s(numero,measurement.no)
##
## Warning in gradientLegend(c(min.z, max.z), n.seg = 3, pos = 0.875, color =
## pal, : Increase right margin to fit labels or decrease the number of decimals,
## see help(gradientLegend).
plot_smooth(ai.mas.gam.f2.slope, view="measurement.no", plot_all="ton.ord",
rug=F, rm.ranef=T)
## Summary:
## * ton.ord : factor; set to the value(s): 1, 2, 3, 4.
## * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000.
## * f0 : numeric predictor; set to the value(s): 137.402261031236.
## * numero : numeric predictor; set to the value(s): 164. (Might be canceled as random effect, check below.)
## * NOTE : The following random effects columns are canceled: s(numero),s(numero,measurement.no)
##
#plot_diff(ai.mas.gam.slope, view="measurement.no",
#comp=list(ton.ord = c("2","4")), rm.ranef=T)
#ai.mas.gam.f2.smooth <- bam(f1 ~ ton.ord + s(measurement.no, bs="cr") +
# s(f0, bs="cr") +
# ti(measurement.no, f0) +
# s(measurement.no, by=ton.ord, bs="cr") +
# s(measurement.no, numero, bs="fs", xt="cr", m=1, k=5),
# data=ai.mas, method="fREML")
#summary.coefs(ai.mas.gam.f2.smooth)
The central portion:
ai.central.mas.f2.gam.diff <- bam(f2 ~ ton.ord + s(measurement.no, bs="cr",k=6) +
s(measurement.no, by=ton.ord, bs="cr",k=6),
data=ai.central.mas, method="ML")
summary.coefs(ai.central.mas.f2.gam.diff)
## Parametric coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 1797.78 28.10 63.974 < 2e-16 ***
## ton.ord2 -169.65 30.20 -5.618 2.77e-08 ***
## ton.ord3 -154.65 31.23 -4.952 9.20e-07 ***
## ton.ord4 -136.24 29.09 -4.683 3.38e-06 ***
##
## Approximate significance of smooth terms:
## edf Ref.df F p-value
## s(measurement.no) 1.005 1.011 7.229 0.00732 **
## s(measurement.no):ton.ord2 1.001 1.002 0.268 0.60543
## s(measurement.no):ton.ord3 1.001 1.002 0.035 0.85460
## s(measurement.no):ton.ord4 1.001 1.003 0.595 0.44147
plot_smooth(ai.central.mas.f2.gam.diff, view="measurement.no",
plot_all="ton.ord", rug=F)
## Summary:
## * ton.ord : factor; set to the value(s): 1, 2, 3, 4.
## * measurement.no : numeric predictor; with 30 values ranging from 2.000000 to 8.000000.
## * NOTE : No random effects in the model to cancel.
##
plot_diff(ai.central.mas.f2.gam.diff, view="measurement.no",
comp=list(ton.ord=c("1","2")))
## Summary:
## * measurement.no : numeric predictor; with 100 values ranging from 2.000000 to 8.000000.
##
## measurement.no window(s) of significant difference(s):
## 2.000000 - 8.000000
plot_diff(ai.central.mas.f2.gam.diff, view="measurement.no",
comp=list(ton.ord=c("2","3")))
## Summary:
## * measurement.no : numeric predictor; with 100 values ranging from 2.000000 to 8.000000.
##
## Difference is not significant.
plot_diff(ai.central.mas.f2.gam.diff, view="measurement.no",
comp=list(ton.ord=c("3","4")))
## Summary:
## * measurement.no : numeric predictor; with 100 values ranging from 2.000000 to 8.000000.
##
## measurement.no window(s) of significant difference(s):
## 6.242424 - 8.000000
plot_diff(ai.central.mas.f2.gam.diff, view="measurement.no",
comp=list(ton.ord=c("2","4")))
## Summary:
## * measurement.no : numeric predictor; with 100 values ranging from 2.000000 to 8.000000.
##
## measurement.no window(s) of significant difference(s):
## 3.939394 - 7.454545
ai.central.mas.f2.gam.dur <- bam(f2 ~ ton.ord + s(measurement.no, bs="cr",k=6) +
s(duree.ms., bs="cr",k=6) +
ti(measurement.no, duree.ms.,k=6) +
s(measurement.no, by=ton.ord, bs="cr",k=6),
data=ai.central.mas, method="ML")
summary.coefs(ai.central.mas.f2.gam.dur)
## Parametric coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 1809.11 27.47 65.867 < 2e-16 ***
## ton.ord2 -178.42 29.78 -5.992 3.30e-09 ***
## ton.ord3 -158.81 30.29 -5.243 2.09e-07 ***
## ton.ord4 -152.09 28.53 -5.331 1.32e-07 ***
##
## Approximate significance of smooth terms:
## edf Ref.df F p-value
## s(measurement.no) 1.106 1.204 6.368 0.01168 *
## s(duree.ms.) 2.613 3.155 4.432 0.00315 **
## ti(measurement.no,duree.ms.) 3.274 4.240 7.847 2.48e-06 ***
## s(measurement.no):ton.ord2 1.001 1.002 1.433 0.23173
## s(measurement.no):ton.ord3 1.001 1.002 0.023 0.88142
## s(measurement.no):ton.ord4 1.002 1.003 0.342 0.56017
plot_smooth(ai.central.mas.f2.gam.dur, view="measurement.no", cond=list(duree.ms.=170),
rug=F, col="red")
## Summary:
## * ton.ord : factor; set to the value(s): 4.
## * measurement.no : numeric predictor; with 30 values ranging from 2.000000 to 8.000000.
## * duree.ms. : numeric predictor; set to the value(s): 170.
## * NOTE : No random effects in the model to cancel.
##
plot_smooth(ai.central.mas.f2.gam.dur, view="measurement.no", cond=list(duree.ms.=80),
rug=F, col="blue", add=T)
## Summary:
## * ton.ord : factor; set to the value(s): 4.
## * measurement.no : numeric predictor; with 30 values ranging from 2.000000 to 8.000000.
## * duree.ms. : numeric predictor; set to the value(s): 80.
## * NOTE : No random effects in the model to cancel.
##
fvisgam(ai.central.mas.f2.gam.dur, view=c("measurement.no","duree.ms."),
ylim=quantile(ai.central.mas$duree.ms., c(0.1, 0.9)))
## Summary:
## * ton.ord : factor; set to the value(s): 4.
## * measurement.no : numeric predictor; with 30 values ranging from 2.000000 to 8.000000.
## * duree.ms. : numeric predictor; with 30 values ranging from 80.084553 to 197.994270.
## * NOTE : No random effects in the model to cancel.
##
## Warning in gradientLegend(c(min.z, max.z), n.seg = 3, pos = 0.875, color =
## pal, : Increase right margin to fit labels or decrease the number of decimals,
## see help(gradientLegend).
ai.central.mas.f2.gam.f0 <- bam(f2 ~ ton.ord + s(measurement.no, bs="cr",k=6) +
s(f0, bs="cr",k=6) +
ti(measurement.no, f0,k=6) +
s(measurement.no, by=ton.ord, bs="cr",k=6),
data=ai.central.mas, method="ML")
summary.coefs(ai.central.mas.f2.gam.f0)
## Parametric coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 1808.72 25.82 70.057 < 2e-16 ***
## ton.ord2 -183.71 28.33 -6.485 1.74e-10 ***
## ton.ord3 -198.13 29.76 -6.658 5.86e-11 ***
## ton.ord4 -147.99 26.51 -5.582 3.48e-08 ***
##
## Approximate significance of smooth terms:
## edf Ref.df F p-value
## s(measurement.no) 1.001 1.002 9.506 0.00212 **
## s(f0) 4.105 4.579 7.115 2.97e-06 ***
## ti(measurement.no,f0) 5.049 5.936 5.348 2.37e-05 ***
## s(measurement.no):ton.ord2 1.001 1.001 0.421 0.51700
## s(measurement.no):ton.ord3 1.001 1.001 0.465 0.49561
## s(measurement.no):ton.ord4 1.001 1.001 0.610 0.43499
plot_smooth(ai.central.mas.f2.gam.f0, view="measurement.no", cond=list(f0=100),
rug=F, col="red")
## Summary:
## * ton.ord : factor; set to the value(s): 4.
## * measurement.no : numeric predictor; with 30 values ranging from 2.000000 to 8.000000.
## * f0 : numeric predictor; set to the value(s): 100.
## * NOTE : No random effects in the model to cancel.
##
plot_smooth(ai.central.mas.f2.gam.f0, view="measurement.no", cond=list(f0=120),
rug=F, col="orange", add=T)
## Summary:
## * ton.ord : factor; set to the value(s): 4.
## * measurement.no : numeric predictor; with 30 values ranging from 2.000000 to 8.000000.
## * f0 : numeric predictor; set to the value(s): 120.
## * NOTE : No random effects in the model to cancel.
##
plot_smooth(ai.central.mas.f2.gam.f0, view="measurement.no", cond=list(f0=140),
rug=F, col="yellow", add=T)
## Summary:
## * ton.ord : factor; set to the value(s): 4.
## * measurement.no : numeric predictor; with 30 values ranging from 2.000000 to 8.000000.
## * f0 : numeric predictor; set to the value(s): 140.
## * NOTE : No random effects in the model to cancel.
##
plot_smooth(ai.central.mas.f2.gam.f0, view="measurement.no", cond=list(f0=180),
rug=F, col="green", add=T)
## Summary:
## * ton.ord : factor; set to the value(s): 4.
## * measurement.no : numeric predictor; with 30 values ranging from 2.000000 to 8.000000.
## * f0 : numeric predictor; set to the value(s): 180.
## * NOTE : No random effects in the model to cancel.
##
plot_smooth(ai.central.mas.f2.gam.f0, view="measurement.no", cond=list(f0=200),
rug=F, col="blue", add=T)
## Summary:
## * ton.ord : factor; set to the value(s): 4.
## * measurement.no : numeric predictor; with 30 values ranging from 2.000000 to 8.000000.
## * f0 : numeric predictor; set to the value(s): 200.
## * NOTE : No random effects in the model to cancel.
##
fvisgam(ai.central.mas.f2.gam.f0, view=c("measurement.no","f0"),
ylim=quantile(ai.central.mas$f0, c(0.1, 0.9), na.rm=TRUE))
## Summary:
## * ton.ord : factor; set to the value(s): 4.
## * measurement.no : numeric predictor; with 30 values ranging from 2.000000 to 8.000000.
## * f0 : numeric predictor; with 30 values ranging from 99.155553 to 204.798228.
## * NOTE : No random effects in the model to cancel.
##
## Warning in gradientLegend(c(min.z, max.z), n.seg = 3, pos = 0.875, color =
## pal, : Increase right margin to fit labels or decrease the number of decimals,
## see help(gradientLegend).
We now switch to the data of feminin subjects.
The first model with a basic smooth of tone 1 and difference smooths.
ai.fem$ton.ord <- as.ordered(ai.fem$ton)
contrasts(ai.fem$ton.ord) <- "contr.treatment"
ai.fem.gam.diff <- bam(f1 ~ ton.ord + s(measurement.no, bs="cr") +
s(measurement.no, by=ton.ord, bs="cr"),
data=ai.fem, method="ML")
summary.coefs(ai.fem.gam.diff)
## Parametric coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 727.300 10.502 69.251 < 2e-16 ***
## ton.ord2 41.824 12.745 3.282 0.00106 **
## ton.ord3 9.285 13.129 0.707 0.47957
## ton.ord4 -4.129 11.138 -0.371 0.71090
##
## Approximate significance of smooth terms:
## edf Ref.df F p-value
## s(measurement.no) 4.990 6.014 22.139 < 2e-16 ***
## s(measurement.no):ton.ord2 1.976 2.459 3.589 0.02225 *
## s(measurement.no):ton.ord3 1.004 1.008 4.710 0.03005 *
## s(measurement.no):ton.ord4 2.916 3.598 4.183 0.00373 **
Then the plots of predictions and difference smooth.
plot_smooth(ai.fem.gam.diff, view="measurement.no",
plot_all="ton.ord", rug=F)
## Summary:
## * ton.ord : factor; set to the value(s): 1, 2, 3, 4.
## * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000.
## * NOTE : No random effects in the model to cancel.
##
plot_diff(ai.fem.gam.diff, view="measurement.no",
comp=list(ton.ord=c("1","2")))
## Summary:
## * measurement.no : numeric predictor; with 100 values ranging from 0.000000 to 10.000000.
##
## measurement.no window(s) of significant difference(s):
## 0.000000 - 4.343434
plot_diff(ai.fem.gam.diff, view="measurement.no",
comp=list(ton.ord=c("2","3")))
## Summary:
## * measurement.no : numeric predictor; with 100 values ranging from 0.000000 to 10.000000.
##
## measurement.no window(s) of significant difference(s):
## 0.000000 - 2.323232
## 7.777778 - 10.000000
plot_diff(ai.fem.gam.diff, view="measurement.no",
comp=list(ton.ord=c("3","4")))
## Summary:
## * measurement.no : numeric predictor; with 100 values ranging from 0.000000 to 10.000000.
##
## measurement.no window(s) of significant difference(s):
## 0.000000 - 2.828283
## 6.161616 - 7.676768
The model that accounts for the influence of duree.ms. on the trajectories.
ai.fem.gam.dur <- bam(f1 ~ ton.ord + s(measurement.no, bs="cr") +
s(duree.ms., bs="cr") +
ti(measurement.no, duree.ms.) +
s(measurement.no, by=ton.ord, bs="cr"),
data=ai.fem, method="ML")
summary.coefs(ai.fem.gam.dur)
## Parametric coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 725.48603 10.51394 69.002 < 2e-16 ***
## ton.ord2 38.51010 12.39140 3.108 0.00193 **
## ton.ord3 9.42465 13.15220 0.717 0.47377
## ton.ord4 0.02272 11.37780 0.002 0.99841
##
## Approximate significance of smooth terms:
## edf Ref.df F p-value
## s(measurement.no) 5.275 6.330 25.533 < 2e-16 ***
## s(duree.ms.) 7.132 8.041 6.159 < 2e-16 ***
## ti(measurement.no,duree.ms.) 8.571 10.747 5.436 < 2e-16 ***
## s(measurement.no):ton.ord2 2.039 2.534 3.642 0.01899 *
## s(measurement.no):ton.ord3 1.007 1.012 10.009 0.00158 **
## s(measurement.no):ton.ord4 2.434 3.015 2.159 0.09079 .
The plots with regard the durations.
plot_smooth(ai.fem.gam.dur, view="measurement.no", cond=list(duree.ms.=170),
rug=F, col="red")
## Summary:
## * ton.ord : factor; set to the value(s): 4.
## * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000.
## * duree.ms. : numeric predictor; set to the value(s): 170.
## * NOTE : No random effects in the model to cancel.
##
plot_smooth(ai.fem.gam.dur, view="measurement.no", cond=list(duree.ms.=80),
rug=F, col="blue", add=T)
## Summary:
## * ton.ord : factor; set to the value(s): 4.
## * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000.
## * duree.ms. : numeric predictor; set to the value(s): 80.
## * NOTE : No random effects in the model to cancel.
##
fvisgam(ai.fem.gam.dur, view=c("measurement.no","duree.ms."),
ylim=quantile(ai.fem$duree.ms., c(0.1, 0.9)))
## Summary:
## * ton.ord : factor; set to the value(s): 4.
## * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000.
## * duree.ms. : numeric predictor; with 30 values ranging from 89.970028 to 186.666330.
## * NOTE : No random effects in the model to cancel.
##
## Warning in gradientLegend(c(min.z, max.z), n.seg = 3, pos = 0.875, color =
## pal, : Increase right margin to fit labels or decrease the number of decimals,
## see help(gradientLegend).
The model with regard of f0.
ai.fem.gam.f0 <- bam(f1 ~ ton.ord + s(measurement.no, bs="cr") +
s(f0, bs="cr") +
ti(measurement.no, f0) +
s(measurement.no, by=ton.ord, bs="cr"),
data=ai.fem, method="ML")
summary.coefs(ai.fem.gam.f0)
## Parametric coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 726.023 10.603 68.474 <2e-16 ***
## ton.ord2 36.953 14.222 2.598 0.0095 **
## ton.ord3 15.256 14.126 1.080 0.2804
## ton.ord4 -2.092 11.020 -0.190 0.8494
##
## Approximate significance of smooth terms:
## edf Ref.df F p-value
## s(measurement.no) 5.092 6.142 32.725 < 2e-16 ***
## s(f0) 1.000 1.000 1.679 0.195397
## ti(measurement.no,f0) 2.285 2.770 5.741 0.000985 ***
## s(measurement.no):ton.ord2 1.000 1.001 0.466 0.495028
## s(measurement.no):ton.ord3 1.000 1.001 0.245 0.620400
## s(measurement.no):ton.ord4 2.564 3.184 3.425 0.015002 *
The plot of such model.
plot_smooth(ai.fem.gam.f0, view="measurement.no", cond=list(f0=180),
rug=F, col="red")
## Summary:
## * ton.ord : factor; set to the value(s): 4.
## * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000.
## * f0 : numeric predictor; set to the value(s): 180.
## * NOTE : No random effects in the model to cancel.
##
plot_smooth(ai.fem.gam.f0, view="measurement.no", cond=list(f0=200),
rug=F, col="orange", add=T)
## Summary:
## * ton.ord : factor; set to the value(s): 4.
## * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000.
## * f0 : numeric predictor; set to the value(s): 200.
## * NOTE : No random effects in the model to cancel.
##
plot_smooth(ai.fem.gam.f0, view="measurement.no", cond=list(f0=220),
rug=F, col="yellow", add=T)
## Summary:
## * ton.ord : factor; set to the value(s): 4.
## * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000.
## * f0 : numeric predictor; set to the value(s): 220.
## * NOTE : No random effects in the model to cancel.
##
plot_smooth(ai.fem.gam.f0, view="measurement.no", cond=list(f0=240),
rug=F, col="green", add=T)
## Summary:
## * ton.ord : factor; set to the value(s): 4.
## * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000.
## * f0 : numeric predictor; set to the value(s): 240.
## * NOTE : No random effects in the model to cancel.
##
plot_smooth(ai.fem.gam.f0, view="measurement.no", cond=list(f0=260),
rug=F, col="blue", add=T)
## Summary:
## * ton.ord : factor; set to the value(s): 4.
## * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000.
## * f0 : numeric predictor; set to the value(s): 260.
## * NOTE : No random effects in the model to cancel.
##
fvisgam(ai.fem.gam.f0, view=c("measurement.no","f0"),
ylim=quantile(ai.fem$f0, c(0.1, 0.9), na.rm=TRUE))
## Summary:
## * ton.ord : factor; set to the value(s): 4.
## * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000.
## * f0 : numeric predictor; with 30 values ranging from 159.611858 to 275.883293.
## * NOTE : No random effects in the model to cancel.
##
## Warning in gradientLegend(c(min.z, max.z), n.seg = 3, pos = 0.875, color =
## pal, : Increase right margin to fit labels or decrease the number of decimals,
## see help(gradientLegend).
# random intercepts only
ai.fem.gam.int <- bam(f1 ~ ton.ord + s(measurement.no, bs="cr") +
s(f0, bs="cr") +
ti(measurement.no, f0) +
s(measurement.no, by=ton.ord, bs="cr") +
s(numero, bs="re"),
data=ai.fem, method="fREML")
summary.coefs(ai.fem.gam.int)
## Parametric coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 748.285 11.493 65.107 <2e-16 ***
## ton.ord2 35.242 14.163 2.488 0.013 *
## ton.ord3 21.055 14.126 1.490 0.136
## ton.ord4 1.546 11.010 0.140 0.888
##
## Approximate significance of smooth terms:
## edf Ref.df F p-value
## s(measurement.no) 5.1331 6.184 32.528 < 2e-16 ***
## s(f0) 1.0000 1.000 1.098 0.29484
## ti(measurement.no,f0) 3.5799 4.896 3.511 0.00416 **
## s(measurement.no):ton.ord2 1.0001 1.000 0.150 0.69866
## s(measurement.no):ton.ord3 1.0003 1.001 0.124 0.72537
## s(measurement.no):ton.ord4 2.6626 3.295 3.625 0.01065 *
## s(numero) 0.9609 1.000 24.572 7.72e-07 ***
plot_smooth(ai.fem.gam.int, view="measurement.no", cond=list(f0=100),
rug=F, col="red")
## Summary:
## * ton.ord : factor; set to the value(s): 4.
## * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000.
## * f0 : numeric predictor; set to the value(s): 100.
## * numero : numeric predictor; set to the value(s): 57. (Might be canceled as random effect, check below.)
## * NOTE : The following random effects columns are canceled: s(numero)
##
plot_smooth(ai.fem.gam.int, view="measurement.no", cond=list(f0=120),
rug=F, col="orange", add=T)
## Summary:
## * ton.ord : factor; set to the value(s): 4.
## * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000.
## * f0 : numeric predictor; set to the value(s): 120.
## * numero : numeric predictor; set to the value(s): 57. (Might be canceled as random effect, check below.)
## * NOTE : The following random effects columns are canceled: s(numero)
##
plot_smooth(ai.fem.gam.int, view="measurement.no", cond=list(f0=140),
rug=F, col="yellow", add=T)
## Summary:
## * ton.ord : factor; set to the value(s): 4.
## * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000.
## * f0 : numeric predictor; set to the value(s): 140.
## * numero : numeric predictor; set to the value(s): 57. (Might be canceled as random effect, check below.)
## * NOTE : The following random effects columns are canceled: s(numero)
##
plot_smooth(ai.fem.gam.int, view="measurement.no", cond=list(f0=180),
rug=F, col="green", add=T)
## Summary:
## * ton.ord : factor; set to the value(s): 4.
## * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000.
## * f0 : numeric predictor; set to the value(s): 180.
## * numero : numeric predictor; set to the value(s): 57. (Might be canceled as random effect, check below.)
## * NOTE : The following random effects columns are canceled: s(numero)
##
plot_smooth(ai.fem.gam.int, view="measurement.no", cond=list(f0=200),
rug=F, col="blue", add=T)
## Summary:
## * ton.ord : factor; set to the value(s): 4.
## * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000.
## * f0 : numeric predictor; set to the value(s): 200.
## * numero : numeric predictor; set to the value(s): 57. (Might be canceled as random effect, check below.)
## * NOTE : The following random effects columns are canceled: s(numero)
##
fvisgam(ai.fem.gam.int, view=c("measurement.no","f0"),
ylim=quantile(ai.mas$f0, c(0.1, 0.9), na.rm=TRUE))
## Summary:
## * ton.ord : factor; set to the value(s): 4.
## * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000.
## * f0 : numeric predictor; with 30 values ranging from 100.125696 to 212.400605.
## * numero : numeric predictor; set to the value(s): 57. (Might be canceled as random effect, check below.)
## * NOTE : The following random effects columns are canceled: s(numero)
##
## Warning in gradientLegend(c(min.z, max.z), n.seg = 3, pos = 0.875, color =
## pal, : Increase right margin to fit labels or decrease the number of decimals,
## see help(gradientLegend).
# random intercepts + slopes
ai.fem.gam.slope <- bam(f1 ~ ton.ord + s(measurement.no, bs="cr") +
s(f0, bs="cr") +
ti(measurement.no, f0) +
s(measurement.no, by=ton.ord, bs="cr") +
s(numero, bs="re") +
s(numero, measurement.no, bs="re"),
data=ai.fem, method="fREML")
summary.coefs(ai.fem.gam.slope)
## Parametric coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 747.286 11.407 65.514 <2e-16 ***
## ton.ord2 36.487 14.158 2.577 0.0101 *
## ton.ord3 21.379 14.114 1.515 0.1301
## ton.ord4 1.958 11.003 0.178 0.8588
##
## Approximate significance of smooth terms:
## edf Ref.df F p-value
## s(measurement.no) 5.1283 6.178 30.085 < 2e-16 ***
## s(f0) 1.0001 1.000 1.323 0.25034
## ti(measurement.no,f0) 3.4752 4.757 3.598 0.00400 **
## s(measurement.no):ton.ord2 1.0002 1.000 0.156 0.69325
## s(measurement.no):ton.ord3 1.0003 1.001 0.034 0.85413
## s(measurement.no):ton.ord4 2.6666 3.300 3.757 0.00877 **
## s(numero) 0.6759 1.000 5.927 0.07910 .
## s(numero,measurement.no) 0.8148 1.000 12.630 0.02023 *
plot_smooth(ai.fem.gam.slope, view="measurement.no", cond=list(f0=100),
rug=F, col="red")
## Summary:
## * ton.ord : factor; set to the value(s): 4.
## * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000.
## * f0 : numeric predictor; set to the value(s): 100.
## * numero : numeric predictor; set to the value(s): 57. (Might be canceled as random effect, check below.)
## * NOTE : The following random effects columns are canceled: s(numero),s(numero,measurement.no)
##
plot_smooth(ai.fem.gam.slope, view="measurement.no", cond=list(f0=120),
rug=F, col="orange", add=T)
## Summary:
## * ton.ord : factor; set to the value(s): 4.
## * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000.
## * f0 : numeric predictor; set to the value(s): 120.
## * numero : numeric predictor; set to the value(s): 57. (Might be canceled as random effect, check below.)
## * NOTE : The following random effects columns are canceled: s(numero),s(numero,measurement.no)
##
plot_smooth(ai.fem.gam.slope, view="measurement.no", cond=list(f0=140),
rug=F, col="yellow", add=T)
## Summary:
## * ton.ord : factor; set to the value(s): 4.
## * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000.
## * f0 : numeric predictor; set to the value(s): 140.
## * numero : numeric predictor; set to the value(s): 57. (Might be canceled as random effect, check below.)
## * NOTE : The following random effects columns are canceled: s(numero),s(numero,measurement.no)
##
plot_smooth(ai.fem.gam.slope, view="measurement.no", cond=list(f0=180),
rug=F, col="green", add=T)
## Summary:
## * ton.ord : factor; set to the value(s): 4.
## * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000.
## * f0 : numeric predictor; set to the value(s): 180.
## * numero : numeric predictor; set to the value(s): 57. (Might be canceled as random effect, check below.)
## * NOTE : The following random effects columns are canceled: s(numero),s(numero,measurement.no)
##
plot_smooth(ai.fem.gam.slope, view="measurement.no", cond=list(f0=200),
rug=F, col="blue", add=T)
## Summary:
## * ton.ord : factor; set to the value(s): 4.
## * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000.
## * f0 : numeric predictor; set to the value(s): 200.
## * numero : numeric predictor; set to the value(s): 57. (Might be canceled as random effect, check below.)
## * NOTE : The following random effects columns are canceled: s(numero),s(numero,measurement.no)
##
fvisgam(ai.fem.gam.slope, view=c("measurement.no","f0"),
ylim=quantile(ai.fem$f0, c(0.1, 0.9), na.rm=TRUE))
## Summary:
## * ton.ord : factor; set to the value(s): 4.
## * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000.
## * f0 : numeric predictor; with 30 values ranging from 159.611858 to 275.883293.
## * numero : numeric predictor; set to the value(s): 57. (Might be canceled as random effect, check below.)
## * NOTE : The following random effects columns are canceled: s(numero),s(numero,measurement.no)
##
## Warning in gradientLegend(c(min.z, max.z), n.seg = 3, pos = 0.875, color =
## pal, : Increase right margin to fit labels or decrease the number of decimals,
## see help(gradientLegend).
plot_smooth(ai.fem.gam.slope, view="measurement.no", plot_all="ton.ord",
rug=F, rm.ranef=T)
## Summary:
## * ton.ord : factor; set to the value(s): 1, 2, 3, 4.
## * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000.
## * f0 : numeric predictor; set to the value(s): 203.561992329367.
## * numero : numeric predictor; set to the value(s): 57. (Might be canceled as random effect, check below.)
## * NOTE : The following random effects columns are canceled: s(numero),s(numero,measurement.no)
##
#plot_diff(ai.mas.gam.slope, view="measurement.no",
#comp=list(ton.ord = c("2","4")), rm.ranef=T)
#ai.fem.gam.smooth <- bam(f1 ~ ton.ord + s(measurement.no, bs="cr") +
# s(f0, bs="cr") +
# ti(measurement.no, f0) +
# s(measurement.no, by=ton.ord, bs="cr") +
# s(measurement.no, numero, bs="fs", xt="cr", m=1, k=5),
# data=ai.fem, method="fREML")
#summary.coefs(ai.fem.gam.smooth)
ai.fem$start.event <- ai.fem$measurement.no==0
r1 <- start_value_rho(ai.fem.gam.f0)
ai.fem.gam.AR <- bam(f1 ~ ton.ord + s(measurement.no, bs="cr") +
s(f0, bs="cr") +
ti(measurement.no, f0) +
s(measurement.no, by=ton.ord, bs="cr"),
data=ai.fem, method="fREML",
rho=r1, AR.start=ai.fem$start.event)
summary.coefs(ai.fem.gam.AR)
## Parametric coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 730.847 17.036 42.901 <2e-16 ***
## ton.ord2 44.139 22.273 1.982 0.0478 *
## ton.ord3 8.903 22.447 0.397 0.6917
## ton.ord4 -4.354 17.857 -0.244 0.8074
##
## Approximate significance of smooth terms:
## edf Ref.df F p-value
## s(measurement.no) 6.289 7.490 24.971 < 2e-16 ***
## s(f0) 1.000 1.000 0.669 0.413682
## ti(measurement.no,f0) 4.329 5.818 4.314 0.000372 ***
## s(measurement.no):ton.ord2 1.000 1.000 0.805 0.369761
## s(measurement.no):ton.ord3 1.000 1.001 0.385 0.535005
## s(measurement.no):ton.ord4 3.102 3.972 3.223 0.013040 *
plot_smooth(ai.fem.gam.AR, view="measurement.no", plot_all="ton.ord",
rug=F, rm.ranef=T)
## Summary:
## * ton.ord : factor; set to the value(s): 1, 2, 3, 4.
## * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000.
## * f0 : numeric predictor; set to the value(s): 203.561992329367.
## * NOTE : No random effects in the model to cancel.
##
plot_diff(ai.fem.gam.AR, view="measurement.no",
comp=list(ton.ord = c("2","4")))
## Summary:
## * measurement.no : numeric predictor; with 100 values ranging from 0.000000 to 10.000000.
## * f0 : numeric predictor; set to the value(s): 203.561992329367.
##
## measurement.no window(s) of significant difference(s):
## 0.000000 - 3.939394
## 7.575758 - 10.000000
plot_smooth(ai.fem.gam.AR, view="measurement.no", cond=list(f0=100),
rug=F, col="red")
## Summary:
## * ton.ord : factor; set to the value(s): 4.
## * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000.
## * f0 : numeric predictor; set to the value(s): 100.
## * NOTE : No random effects in the model to cancel.
##
plot_smooth(ai.fem.gam.AR, view="measurement.no", cond=list(f0=120),
rug=F, col="orange", add=T)
## Summary:
## * ton.ord : factor; set to the value(s): 4.
## * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000.
## * f0 : numeric predictor; set to the value(s): 120.
## * NOTE : No random effects in the model to cancel.
##
plot_smooth(ai.fem.gam.AR, view="measurement.no", cond=list(f0=140),
rug=F, col="yellow", add=T)
## Summary:
## * ton.ord : factor; set to the value(s): 4.
## * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000.
## * f0 : numeric predictor; set to the value(s): 140.
## * NOTE : No random effects in the model to cancel.
##
plot_smooth(ai.fem.gam.AR, view="measurement.no", cond=list(f0=180),
rug=F, col="green", add=T)
## Summary:
## * ton.ord : factor; set to the value(s): 4.
## * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000.
## * f0 : numeric predictor; set to the value(s): 180.
## * NOTE : No random effects in the model to cancel.
##
plot_smooth(ai.fem.gam.AR, view="measurement.no", cond=list(f0=200),
rug=F, col="blue", add=T)
## Summary:
## * ton.ord : factor; set to the value(s): 4.
## * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000.
## * f0 : numeric predictor; set to the value(s): 200.
## * NOTE : No random effects in the model to cancel.
##
fvisgam(ai.fem.gam.AR, view=c("measurement.no","f0"),
ylim=quantile(ai.fem$f0, c(0.1, 0.9), na.rm=TRUE))
## Summary:
## * ton.ord : factor; set to the value(s): 4.
## * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000.
## * f0 : numeric predictor; with 30 values ranging from 159.611858 to 275.883293.
## * NOTE : No random effects in the model to cancel.
##
## Warning in gradientLegend(c(min.z, max.z), n.seg = 3, pos = 0.875, color =
## pal, : Increase right margin to fit labels or decrease the number of decimals,
## see help(gradientLegend).
We now focus on the central portion of the diphthongs, which means the portions without the inluence of the consonant contexts.
ai.central.fem$ton.ord <- as.ordered(ai.central.fem$ton)
contrasts(ai.central.fem$ton.ord) <- "contr.treatment"
ai.central.fem.gam.diff <- bam(f1 ~ ton.ord + s(measurement.no, bs="cr",k=6) +
s(measurement.no, by=ton.ord, bs="cr",k=6),
data=ai.central.fem, method="ML")
summary.coefs(ai.central.fem.gam.diff)
## Parametric coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 764.464 10.337 73.951 <2e-16 ***
## ton.ord2 23.456 12.626 1.858 0.0636 .
## ton.ord3 1.278 13.036 0.098 0.9219
## ton.ord4 6.941 10.981 0.632 0.5275
##
## Approximate significance of smooth terms:
## edf Ref.df F p-value
## s(measurement.no) 2.787 3.350 9.759 1.85e-06 ***
## s(measurement.no):ton.ord2 1.002 1.005 3.192 0.0744 .
## s(measurement.no):ton.ord3 1.002 1.005 5.494 0.0192 *
## s(measurement.no):ton.ord4 2.339 2.843 2.021 0.1193
plot_smooth(ai.central.fem.gam.diff, view="measurement.no",
plot_all="ton.ord", rug=F)
## Summary:
## * ton.ord : factor; set to the value(s): 1, 2, 3, 4.
## * measurement.no : numeric predictor; with 30 values ranging from 2.000000 to 8.000000.
## * NOTE : No random effects in the model to cancel.
##
plot_diff(ai.central.fem.gam.diff, view="measurement.no",
comp=list(ton.ord=c("1","2")))
## Summary:
## * measurement.no : numeric predictor; with 100 values ranging from 2.000000 to 8.000000.
##
## measurement.no window(s) of significant difference(s):
## 2.000000 - 4.848485
plot_diff(ai.central.fem.gam.diff, view="measurement.no",
comp=list(ton.ord=c("2","3")))
## Summary:
## * measurement.no : numeric predictor; with 100 values ranging from 2.000000 to 8.000000.
##
## measurement.no window(s) of significant difference(s):
## 4.787879 - 7.090909
plot_diff(ai.central.fem.gam.diff, view="measurement.no",
comp=list(ton.ord=c("3","4")))
## Summary:
## * measurement.no : numeric predictor; with 100 values ranging from 2.000000 to 8.000000.
##
## measurement.no window(s) of significant difference(s):
## 2.000000 - 2.969697
## 5.151515 - 8.000000
ai.central.fem.gam.dur <- bam(f1 ~ ton.ord + s(measurement.no, bs="cr",k=6) +
s(duree.ms., bs="cr",k=6) +
ti(measurement.no, duree.ms.,k=6) +
s(measurement.no, by=ton.ord, bs="cr",k=6),
data=ai.central.fem, method="ML")
summary.coefs(ai.central.fem.gam.dur)
## Parametric coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 765.093 10.573 72.362 <2e-16 ***
## ton.ord2 24.013 12.492 1.922 0.055 .
## ton.ord3 -2.690 13.290 -0.202 0.840
## ton.ord4 6.656 11.439 0.582 0.561
##
## Approximate significance of smooth terms:
## edf Ref.df F p-value
## s(measurement.no) 2.800 3.363 10.238 9.86e-07 ***
## s(duree.ms.) 4.244 4.713 3.477 0.0354 *
## ti(measurement.no,duree.ms.) 2.227 2.802 2.612 0.0375 *
## s(measurement.no):ton.ord2 1.001 1.002 3.054 0.0809 .
## s(measurement.no):ton.ord3 1.001 1.002 5.522 0.0190 *
## s(measurement.no):ton.ord4 2.354 2.860 2.097 0.1080
plot_smooth(ai.central.fem.gam.dur, view="measurement.no", cond=list(duree.ms.=170),
rug=F, col="red")
## Summary:
## * ton.ord : factor; set to the value(s): 4.
## * measurement.no : numeric predictor; with 30 values ranging from 2.000000 to 8.000000.
## * duree.ms. : numeric predictor; set to the value(s): 170.
## * NOTE : No random effects in the model to cancel.
##
plot_smooth(ai.central.fem.gam.dur, view="measurement.no", cond=list(duree.ms.=80),
rug=F, col="blue", add=T)
## Summary:
## * ton.ord : factor; set to the value(s): 4.
## * measurement.no : numeric predictor; with 30 values ranging from 2.000000 to 8.000000.
## * duree.ms. : numeric predictor; set to the value(s): 80.
## * NOTE : No random effects in the model to cancel.
##
fvisgam(ai.central.fem.gam.dur, view=c("measurement.no","duree.ms."),
ylim=quantile(ai.central.fem$duree.ms., c(0.1, 0.9)))
## Summary:
## * ton.ord : factor; set to the value(s): 4.
## * measurement.no : numeric predictor; with 30 values ranging from 2.000000 to 8.000000.
## * duree.ms. : numeric predictor; with 30 values ranging from 89.970028 to 186.666330.
## * NOTE : No random effects in the model to cancel.
##
## Warning in gradientLegend(c(min.z, max.z), n.seg = 3, pos = 0.875, color =
## pal, : Increase right margin to fit labels or decrease the number of decimals,
## see help(gradientLegend).
ai.central.fem.gam.f0 <- bam(f1 ~ ton.ord + s(measurement.no, bs="cr",k=6) +
s(f0, bs="cr",k=6) +
ti(measurement.no, f0,k=6) +
s(measurement.no, by=ton.ord, bs="cr",k=6),
data=ai.central.fem, method="ML")
summary.coefs(ai.central.fem.gam.f0)
## Parametric coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 753.01 10.66 70.639 <2e-16 ***
## ton.ord2 40.34 14.26 2.829 0.0048 **
## ton.ord3 25.36 14.31 1.771 0.0769 .
## ton.ord4 14.76 11.07 1.333 0.1828
##
## Approximate significance of smooth terms:
## edf Ref.df F p-value
## s(measurement.no) 2.956 3.535 12.622 < 2e-16 ***
## s(f0) 1.000 1.001 9.090 0.00265 **
## ti(measurement.no,f0) 1.003 1.006 7.019 0.00817 **
## s(measurement.no):ton.ord2 1.001 1.002 1.025 0.31201
## s(measurement.no):ton.ord3 1.001 1.001 1.560 0.21208
## s(measurement.no):ton.ord4 2.117 2.590 1.603 0.18325
plot_smooth(ai.central.fem.gam.f0, view="measurement.no", cond=list(f0=180),
rug=F, col="red")
## Summary:
## * ton.ord : factor; set to the value(s): 4.
## * measurement.no : numeric predictor; with 30 values ranging from 2.000000 to 8.000000.
## * f0 : numeric predictor; set to the value(s): 180.
## * NOTE : No random effects in the model to cancel.
##
plot_smooth(ai.central.fem.gam.f0, view="measurement.no", cond=list(f0=200),
rug=F, col="orange", add=T)
## Summary:
## * ton.ord : factor; set to the value(s): 4.
## * measurement.no : numeric predictor; with 30 values ranging from 2.000000 to 8.000000.
## * f0 : numeric predictor; set to the value(s): 200.
## * NOTE : No random effects in the model to cancel.
##
plot_smooth(ai.central.fem.gam.f0, view="measurement.no", cond=list(f0=220),
rug=F, col="yellow", add=T)
## Summary:
## * ton.ord : factor; set to the value(s): 4.
## * measurement.no : numeric predictor; with 30 values ranging from 2.000000 to 8.000000.
## * f0 : numeric predictor; set to the value(s): 220.
## * NOTE : No random effects in the model to cancel.
##
plot_smooth(ai.central.fem.gam.f0, view="measurement.no", cond=list(f0=240),
rug=F, col="green", add=T)
## Summary:
## * ton.ord : factor; set to the value(s): 4.
## * measurement.no : numeric predictor; with 30 values ranging from 2.000000 to 8.000000.
## * f0 : numeric predictor; set to the value(s): 240.
## * NOTE : No random effects in the model to cancel.
##
plot_smooth(ai.central.fem.gam.f0, view="measurement.no", cond=list(f0=260),
rug=F, col="blue", add=T)
## Summary:
## * ton.ord : factor; set to the value(s): 4.
## * measurement.no : numeric predictor; with 30 values ranging from 2.000000 to 8.000000.
## * f0 : numeric predictor; set to the value(s): 260.
## * NOTE : No random effects in the model to cancel.
##
fvisgam(ai.central.fem.gam.f0, view=c("measurement.no","f0"),
ylim=quantile(ai.central.fem$f0, c(0.1, 0.9), na.rm=TRUE))
## Summary:
## * ton.ord : factor; set to the value(s): 4.
## * measurement.no : numeric predictor; with 30 values ranging from 2.000000 to 8.000000.
## * f0 : numeric predictor; with 30 values ranging from 159.333410 to 268.051028.
## * NOTE : No random effects in the model to cancel.
##
## Warning in gradientLegend(c(min.z, max.z), n.seg = 3, pos = 0.875, color =
## pal, : Increase right margin to fit labels or decrease the number of decimals,
## see help(gradientLegend).
We fit the same model with a basic smooth of tone 1 and difference smooths.
ai.fem.f2.gam.diff <- bam(f2 ~ ton.ord + s(measurement.no, bs="cr") +
s(measurement.no, by=ton.ord, bs="cr"),
data=ai.fem, method="ML")
summary.coefs(ai.fem.f2.gam.diff)
## Parametric coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 2038.36 17.15 118.880 < 2e-16 ***
## ton.ord2 -107.98 20.81 -5.189 2.49e-07 ***
## ton.ord3 -88.98 21.43 -4.152 3.53e-05 ***
## ton.ord4 -70.79 18.18 -3.893 0.000105 ***
##
## Approximate significance of smooth terms:
## edf Ref.df F p-value
## s(measurement.no) 4.280 5.234 3.945 0.001255 **
## s(measurement.no):ton.ord2 1.002 1.005 22.811 2.65e-06 ***
## s(measurement.no):ton.ord3 2.149 2.673 9.920 9.98e-06 ***
## s(measurement.no):ton.ord4 1.003 1.005 11.113 0.000866 ***
Now the plots of f2 with different tones.
plot_smooth(ai.fem.f2.gam.diff, view="measurement.no",
plot_all="ton.ord", rug=F)
## Summary:
## * ton.ord : factor; set to the value(s): 1, 2, 3, 4.
## * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000.
## * NOTE : No random effects in the model to cancel.
##
plot_diff(ai.fem.f2.gam.diff, view="measurement.no",
comp=list(ton.ord=c("1","2")))
## Summary:
## * measurement.no : numeric predictor; with 100 values ranging from 0.000000 to 10.000000.
##
## measurement.no window(s) of significant difference(s):
## 0.000000 - 6.666667
plot_diff(ai.fem.f2.gam.diff, view="measurement.no",
comp=list(ton.ord=c("2","3")))
## Summary:
## * measurement.no : numeric predictor; with 100 values ranging from 0.000000 to 10.000000.
##
## measurement.no window(s) of significant difference(s):
## 4.545455 - 5.959596
plot_diff(ai.fem.f2.gam.diff, view="measurement.no",
comp=list(ton.ord=c("3","4")))
## Summary:
## * measurement.no : numeric predictor; with 100 values ranging from 0.000000 to 10.000000.
##
## measurement.no window(s) of significant difference(s):
## 0.000000 - 2.424242
The model that accounts for the influence of duree.ms. on the trajectories.
ai.fem.f2.gam.dur <- bam(f2 ~ ton.ord + s(measurement.no, bs="cr") +
s(duree.ms., bs="cr") +
ti(measurement.no, duree.ms.) +
s(measurement.no, by=ton.ord, bs="cr"),
data=ai.fem, method="ML")
summary.coefs(ai.fem.f2.gam.dur)
## Parametric coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 2038.81 17.36 117.410 < 2e-16 ***
## ton.ord2 -102.76 20.46 -5.023 5.88e-07 ***
## ton.ord3 -87.08 21.69 -4.014 6.35e-05 ***
## ton.ord4 -73.67 18.78 -3.922 9.29e-05 ***
##
## Approximate significance of smooth terms:
## edf Ref.df F p-value
## s(measurement.no) 4.356 5.321 4.858 0.000157 ***
## s(duree.ms.) 6.537 7.514 5.600 1.96e-06 ***
## ti(measurement.no,duree.ms.) 3.189 3.659 7.475 1.13e-05 ***
## s(measurement.no):ton.ord2 1.002 1.005 21.541 3.84e-06 ***
## s(measurement.no):ton.ord3 2.182 2.713 8.207 6.17e-05 ***
## s(measurement.no):ton.ord4 1.004 1.007 4.444 0.034836 *
The plots with regard the durations.
plot_smooth(ai.fem.f2.gam.dur, view="measurement.no", cond=list(duree.ms.=170),
rug=F, col="red")
## Summary:
## * ton.ord : factor; set to the value(s): 4.
## * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000.
## * duree.ms. : numeric predictor; set to the value(s): 170.
## * NOTE : No random effects in the model to cancel.
##
plot_smooth(ai.fem.f2.gam.dur, view="measurement.no", cond=list(duree.ms.=80),
rug=F, col="blue", add=T)
## Summary:
## * ton.ord : factor; set to the value(s): 4.
## * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000.
## * duree.ms. : numeric predictor; set to the value(s): 80.
## * NOTE : No random effects in the model to cancel.
##
fvisgam(ai.fem.f2.gam.dur, view=c("measurement.no","duree.ms."),
ylim=quantile(ai.fem$duree.ms., c(0.1, 0.9)))
## Summary:
## * ton.ord : factor; set to the value(s): 4.
## * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000.
## * duree.ms. : numeric predictor; with 30 values ranging from 89.970028 to 186.666330.
## * NOTE : No random effects in the model to cancel.
##
## Warning in gradientLegend(c(min.z, max.z), n.seg = 3, pos = 0.875, color =
## pal, : Increase right margin to fit labels or decrease the number of decimals,
## see help(gradientLegend).
ai.fem.f2.gam.f0 <- bam(f2 ~ ton.ord + s(measurement.no, bs="cr") +
s(f0, bs="cr") +
ti(measurement.no, f0) +
s(measurement.no, by=ton.ord, bs="cr"),
data=ai.fem, method="ML")
summary.coefs(ai.fem.f2.gam.f0)
## Parametric coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 2006.20 17.59 114.025 <2e-16 ***
## ton.ord2 -47.56 23.69 -2.008 0.0449 *
## ton.ord3 -39.15 23.59 -1.660 0.0972 .
## ton.ord4 -33.95 18.66 -1.819 0.0691 .
##
## Approximate significance of smooth terms:
## edf Ref.df F p-value
## s(measurement.no) 3.765 4.647 3.339 0.006051 **
## s(f0) 4.465 5.325 9.702 < 2e-16 ***
## ti(measurement.no,f0) 1.001 1.002 3.953 0.046912 *
## s(measurement.no):ton.ord2 1.000 1.001 7.075 0.007921 **
## s(measurement.no):ton.ord3 1.878 2.345 4.999 0.004516 **
## s(measurement.no):ton.ord4 1.001 1.002 14.369 0.000158 ***
plot_smooth(ai.fem.f2.gam.f0, view="measurement.no", cond=list(f0=180),
rug=F, col="red")
## Summary:
## * ton.ord : factor; set to the value(s): 4.
## * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000.
## * f0 : numeric predictor; set to the value(s): 180.
## * NOTE : No random effects in the model to cancel.
##
plot_smooth(ai.fem.f2.gam.f0, view="measurement.no", cond=list(f0=200),
rug=F, col="orange", add=T)
## Summary:
## * ton.ord : factor; set to the value(s): 4.
## * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000.
## * f0 : numeric predictor; set to the value(s): 200.
## * NOTE : No random effects in the model to cancel.
##
plot_smooth(ai.fem.f2.gam.f0, view="measurement.no", cond=list(f0=220),
rug=F, col="yellow", add=T)
## Summary:
## * ton.ord : factor; set to the value(s): 4.
## * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000.
## * f0 : numeric predictor; set to the value(s): 220.
## * NOTE : No random effects in the model to cancel.
##
plot_smooth(ai.fem.f2.gam.f0, view="measurement.no", cond=list(f0=240),
rug=F, col="green", add=T)
## Summary:
## * ton.ord : factor; set to the value(s): 4.
## * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000.
## * f0 : numeric predictor; set to the value(s): 240.
## * NOTE : No random effects in the model to cancel.
##
plot_smooth(ai.fem.f2.gam.f0, view="measurement.no", cond=list(f0=260),
rug=F, col="blue", add=T)
## Summary:
## * ton.ord : factor; set to the value(s): 4.
## * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000.
## * f0 : numeric predictor; set to the value(s): 260.
## * NOTE : No random effects in the model to cancel.
##
fvisgam(ai.fem.f2.gam.f0, view=c("measurement.no","f0"),
ylim=quantile(ai.fem$f0, c(0.1, 0.9), na.rm=TRUE))
## Summary:
## * ton.ord : factor; set to the value(s): 4.
## * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000.
## * f0 : numeric predictor; with 30 values ranging from 159.611858 to 275.883293.
## * NOTE : No random effects in the model to cancel.
##
## Warning in gradientLegend(c(min.z, max.z), n.seg = 3, pos = 0.875, color =
## pal, : Increase right margin to fit labels or decrease the number of decimals,
## see help(gradientLegend).
The central portion:
ai.central.fem.f2.gam.diff <- bam(f2 ~ ton.ord + s(measurement.no, bs="cr",k=6) +
s(measurement.no, by=ton.ord, bs="cr",k=6),
data=ai.central.fem, method="ML")
summary.coefs(ai.central.fem.f2.gam.diff)
## Parametric coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 2048.03 17.96 114.046 < 2e-16 ***
## ton.ord2 -110.36 21.93 -5.032 6.06e-07 ***
## ton.ord3 -68.99 22.65 -3.047 0.00239 **
## ton.ord4 -74.75 19.08 -3.919 9.70e-05 ***
##
## Approximate significance of smooth terms:
## edf Ref.df F p-value
## s(measurement.no) 1.354 1.610 3.247 0.03218 *
## s(measurement.no):ton.ord2 1.002 1.003 7.512 0.00623 **
## s(measurement.no):ton.ord3 1.002 1.004 6.353 0.01188 *
## s(measurement.no):ton.ord4 1.108 1.194 1.388 0.20091
plot_smooth(ai.central.fem.f2.gam.diff, view="measurement.no",
plot_all="ton.ord", rug=F)
## Summary:
## * ton.ord : factor; set to the value(s): 1, 2, 3, 4.
## * measurement.no : numeric predictor; with 30 values ranging from 2.000000 to 8.000000.
## * NOTE : No random effects in the model to cancel.
##
plot_diff(ai.central.fem.f2.gam.diff, view="measurement.no",
comp=list(ton.ord=c("1","2")))
## Summary:
## * measurement.no : numeric predictor; with 100 values ranging from 2.000000 to 8.000000.
##
## measurement.no window(s) of significant difference(s):
## 2.000000 - 6.727273
plot_diff(ai.central.fem.f2.gam.diff, view="measurement.no",
comp=list(ton.ord=c("2","3")))
## Summary:
## * measurement.no : numeric predictor; with 100 values ranging from 2.000000 to 8.000000.
##
## measurement.no window(s) of significant difference(s):
## 3.757576 - 5.818182
plot_diff(ai.central.fem.f2.gam.diff, view="measurement.no",
comp=list(ton.ord=c("3","4")))
## Summary:
## * measurement.no : numeric predictor; with 100 values ranging from 2.000000 to 8.000000.
##
## Difference is not significant.
plot_diff(ai.central.fem.f2.gam.diff, view="measurement.no",
comp=list(ton.ord=c("2","4")))
## Summary:
## * measurement.no : numeric predictor; with 100 values ranging from 2.000000 to 8.000000.
##
## measurement.no window(s) of significant difference(s):
## 2.000000 - 5.333333
ai.central.fem.f2.gam.dur <- bam(f2 ~ ton.ord + s(measurement.no, bs="cr",k=6) +
s(duree.ms., bs="cr",k=6) +
ti(measurement.no, duree.ms.,k=6) +
s(measurement.no, by=ton.ord, bs="cr",k=6),
data=ai.central.fem, method="ML")
summary.coefs(ai.central.fem.f2.gam.dur)
## Parametric coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 2057.82 18.18 113.168 < 2e-16 ***
## ton.ord2 -114.28 21.48 -5.321 1.36e-07 ***
## ton.ord3 -74.34 22.87 -3.251 0.0012 **
## ton.ord4 -88.36 19.67 -4.491 8.18e-06 ***
##
## Approximate significance of smooth terms:
## edf Ref.df F p-value
## s(measurement.no) 1.226 1.395 6.156 0.005088 **
## s(duree.ms.) 4.351 4.781 5.615 0.000994 ***
## ti(measurement.no,duree.ms.) 2.317 2.905 5.698 0.001249 **
## s(measurement.no):ton.ord2 1.001 1.002 7.310 0.006986 **
## s(measurement.no):ton.ord3 1.001 1.002 4.581 0.032602 *
## s(measurement.no):ton.ord4 1.276 1.479 0.171 0.687964
plot_smooth(ai.central.fem.f2.gam.dur, view="measurement.no", cond=list(duree.ms.=170),
rug=F, col="red")
## Summary:
## * ton.ord : factor; set to the value(s): 4.
## * measurement.no : numeric predictor; with 30 values ranging from 2.000000 to 8.000000.
## * duree.ms. : numeric predictor; set to the value(s): 170.
## * NOTE : No random effects in the model to cancel.
##
plot_smooth(ai.central.fem.f2.gam.dur, view="measurement.no", cond=list(duree.ms.=80),
rug=F, col="blue", add=T)
## Summary:
## * ton.ord : factor; set to the value(s): 4.
## * measurement.no : numeric predictor; with 30 values ranging from 2.000000 to 8.000000.
## * duree.ms. : numeric predictor; set to the value(s): 80.
## * NOTE : No random effects in the model to cancel.
##
fvisgam(ai.central.fem.f2.gam.dur, view=c("measurement.no","duree.ms."),
ylim=quantile(ai.central.fem$duree.ms., c(0.1, 0.9)))
## Summary:
## * ton.ord : factor; set to the value(s): 4.
## * measurement.no : numeric predictor; with 30 values ranging from 2.000000 to 8.000000.
## * duree.ms. : numeric predictor; with 30 values ranging from 89.970028 to 186.666330.
## * NOTE : No random effects in the model to cancel.
##
## Warning in gradientLegend(c(min.z, max.z), n.seg = 3, pos = 0.875, color =
## pal, : Increase right margin to fit labels or decrease the number of decimals,
## see help(gradientLegend).
ai.central.fem.f2.gam.f0 <- bam(f2 ~ ton.ord + s(measurement.no, bs="cr",k=6) +
s(f0, bs="cr",k=6) +
ti(measurement.no, f0,k=6) +
s(measurement.no, by=ton.ord, bs="cr",k=6),
data=ai.central.fem, method="ML")
summary.coefs(ai.central.fem.f2.gam.f0)
## Parametric coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 2010.59 18.67 107.680 <2e-16 ***
## ton.ord2 -46.55 25.44 -1.830 0.0677 .
## ton.ord3 -24.49 25.01 -0.979 0.3278
## ton.ord4 -31.78 19.74 -1.610 0.1079
##
## Approximate significance of smooth terms:
## edf Ref.df F p-value
## s(measurement.no) 1.019 1.036 9.108 0.00263 **
## s(f0) 3.656 4.215 12.066 < 2e-16 ***
## ti(measurement.no,f0) 2.960 3.539 4.413 0.00284 **
## s(measurement.no):ton.ord2 1.001 1.001 2.724 0.09917 .
## s(measurement.no):ton.ord3 1.001 1.001 2.309 0.12896
## s(measurement.no):ton.ord4 1.158 1.296 1.005 0.41341
plot_smooth(ai.central.fem.f2.gam.f0, view="measurement.no", cond=list(f0=180),
rug=F, col="red")
## Summary:
## * ton.ord : factor; set to the value(s): 4.
## * measurement.no : numeric predictor; with 30 values ranging from 2.000000 to 8.000000.
## * f0 : numeric predictor; set to the value(s): 180.
## * NOTE : No random effects in the model to cancel.
##
plot_smooth(ai.central.fem.f2.gam.f0, view="measurement.no", cond=list(f0=200),
rug=F, col="orange", add=T)
## Summary:
## * ton.ord : factor; set to the value(s): 4.
## * measurement.no : numeric predictor; with 30 values ranging from 2.000000 to 8.000000.
## * f0 : numeric predictor; set to the value(s): 200.
## * NOTE : No random effects in the model to cancel.
##
plot_smooth(ai.central.fem.f2.gam.f0, view="measurement.no", cond=list(f0=220),
rug=F, col="yellow", add=T)
## Summary:
## * ton.ord : factor; set to the value(s): 4.
## * measurement.no : numeric predictor; with 30 values ranging from 2.000000 to 8.000000.
## * f0 : numeric predictor; set to the value(s): 220.
## * NOTE : No random effects in the model to cancel.
##
plot_smooth(ai.central.fem.f2.gam.f0, view="measurement.no", cond=list(f0=240),
rug=F, col="green", add=T)
## Summary:
## * ton.ord : factor; set to the value(s): 4.
## * measurement.no : numeric predictor; with 30 values ranging from 2.000000 to 8.000000.
## * f0 : numeric predictor; set to the value(s): 240.
## * NOTE : No random effects in the model to cancel.
##
plot_smooth(ai.central.fem.f2.gam.f0, view="measurement.no", cond=list(f0=260),
rug=F, col="blue", add=T)
## Summary:
## * ton.ord : factor; set to the value(s): 4.
## * measurement.no : numeric predictor; with 30 values ranging from 2.000000 to 8.000000.
## * f0 : numeric predictor; set to the value(s): 260.
## * NOTE : No random effects in the model to cancel.
##
fvisgam(ai.central.fem.f2.gam.f0, view=c("measurement.no","f0"),
ylim=quantile(ai.central.fem$f0, c(0.1, 0.9), na.rm=TRUE))
## Summary:
## * ton.ord : factor; set to the value(s): 4.
## * measurement.no : numeric predictor; with 30 values ranging from 2.000000 to 8.000000.
## * f0 : numeric predictor; with 30 values ranging from 159.333410 to 268.051028.
## * NOTE : No random effects in the model to cancel.
##
## Warning in gradientLegend(c(min.z, max.z), n.seg = 3, pos = 0.875, color =
## pal, : Increase right margin to fit labels or decrease the number of decimals,
## see help(gradientLegend).
The next diphthong we look at is /au/.
au$sexe<-as.factor(au$sexe)
au$ton<-as.factor(au$ton)
au$pow<-as.factor(au$pow)
au$contexte.D<-as.factor(au$contexte.D)
au$contexte.G<-as.factor(au$contexte.G)
au$f1<-as.numeric(au$f1)
## Warning: NAs introduced by coercion
au$f2<-as.numeric(au$f2)
## Warning: NAs introduced by coercion
au$f3<-as.numeric(au$f3)
## Warning: NAs introduced by coercion
au$f0<-as.numeric(au$f0)
## Warning: NAs introduced by coercion
# Regroupement par les facteurs
au.mas <- droplevels(subset(au,sexe=="M"))
au.fem <- droplevels(subset(au,sexe=="F"))
Then the trajectories of f1 in different tones with regard of the sexes and the durations.
ggplot(au.mas, aes(x=measurement.no, y=f1, group=numero,
alpha=duree.ms.)) +
facet_grid(~ton) + geom_line()
## Warning: Removed 28 row(s) containing missing values (geom_path).
ggplot(au.fem, aes(x=measurement.no, y=f1, group=numero,
alpha=duree.ms.)) +
facet_grid(~ton) + geom_line()
## Warning: Removed 5 row(s) containing missing values (geom_path).
Then the first model with a basic smooth of tone 1 and difference smooths.
au.mas$ton.ord <- as.ordered(au.mas$ton)
contrasts(au.mas$ton.ord) <- "contr.treatment"
au.mas.gam.diff <- bam(f1 ~ ton.ord + s(measurement.no, bs="cr") +
s(measurement.no, by=ton.ord, bs="cr"),
data=au.mas, method="ML")
summary.coefs(au.mas.gam.diff)
## Parametric coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 541.70 13.54 40.021 < 2e-16 ***
## ton.ord2 160.30 22.43 7.146 1.6e-12 ***
## ton.ord3 142.94 15.71 9.100 < 2e-16 ***
## ton.ord4 144.28 14.41 10.014 < 2e-16 ***
##
## Approximate significance of smooth terms:
## edf Ref.df F p-value
## s(measurement.no) 5.228 6.297 17.682 < 2e-16 ***
## s(measurement.no):ton.ord2 1.133 1.254 2.294 0.09242 .
## s(measurement.no):ton.ord3 1.002 1.005 0.364 0.54664
## s(measurement.no):ton.ord4 1.016 1.031 8.586 0.00342 **
Then the plots of predictions and difference smooth.
plot_smooth(au.mas.gam.diff, view="measurement.no",
plot_all="ton.ord", rug=F)
## Summary:
## * ton.ord : factor; set to the value(s): 1, 2, 3, 4.
## * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000.
## * NOTE : No random effects in the model to cancel.
##
plot_diff(au.mas.gam.diff, view="measurement.no",
comp=list(ton.ord=c("1","2")))
## Summary:
## * measurement.no : numeric predictor; with 100 values ranging from 0.000000 to 10.000000.
##
## measurement.no window(s) of significant difference(s):
## 0.000000 - 10.000000
plot_diff(au.mas.gam.diff, view="measurement.no",
comp=list(ton.ord=c("2","3")))
## Summary:
## * measurement.no : numeric predictor; with 100 values ranging from 0.000000 to 10.000000.
##
## Difference is not significant.
plot_diff(au.mas.gam.diff, view="measurement.no",
comp=list(ton.ord=c("3","4")))
## Summary:
## * measurement.no : numeric predictor; with 100 values ranging from 0.000000 to 10.000000.
##
## measurement.no window(s) of significant difference(s):
## 0.000000 - 2.525253
## 6.868687 - 10.000000
The model that accounts for the influence of duree.ms. on the trajectories.
au.mas.gam.dur <- bam(f1 ~ ton.ord + s(measurement.no, bs="cr") +
s(duree.ms., bs="cr") +
ti(measurement.no, duree.ms.) +
s(measurement.no, by=ton.ord, bs="cr"),
data=au.mas, method="ML")
summary.coefs(au.mas.gam.dur)
## Parametric coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 538.05 13.23 40.654 < 2e-16 ***
## ton.ord2 155.30 22.29 6.966 5.55e-12 ***
## ton.ord3 141.85 15.30 9.269 < 2e-16 ***
## ton.ord4 151.23 14.17 10.671 < 2e-16 ***
##
## Approximate significance of smooth terms:
## edf Ref.df F p-value
## s(measurement.no) 5.099 6.148 9.387 < 2e-16 ***
## s(duree.ms.) 6.844 7.743 5.934 4.75e-07 ***
## ti(measurement.no,duree.ms.) 5.769 7.821 2.188 0.03051 *
## s(measurement.no):ton.ord2 1.228 1.417 1.818 0.11762
## s(measurement.no):ton.ord3 1.003 1.005 0.390 0.53376
## s(measurement.no):ton.ord4 2.064 2.564 4.619 0.00881 **
The plots with regard the durations.
plot_smooth(au.mas.gam.dur, view="measurement.no", cond=list(duree.ms.=170),
rug=F, col="red")
## Summary:
## * ton.ord : factor; set to the value(s): 4.
## * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000.
## * duree.ms. : numeric predictor; set to the value(s): 170.
## * NOTE : No random effects in the model to cancel.
##
plot_smooth(au.mas.gam.dur, view="measurement.no", cond=list(duree.ms.=80),
rug=F, col="blue", add=T)
## Summary:
## * ton.ord : factor; set to the value(s): 4.
## * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000.
## * duree.ms. : numeric predictor; set to the value(s): 80.
## * NOTE : No random effects in the model to cancel.
##
fvisgam(au.mas.gam.dur, view=c("measurement.no","duree.ms."),
ylim=quantile(au.mas$duree.ms., c(0.1, 0.9)))
## Summary:
## * ton.ord : factor; set to the value(s): 4.
## * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000.
## * duree.ms. : numeric predictor; with 30 values ranging from 88.249203 to 188.623093.
## * NOTE : No random effects in the model to cancel.
##
## Warning in gradientLegend(c(min.z, max.z), n.seg = 3, pos = 0.875, color =
## pal, : Increase right margin to fit labels or decrease the number of decimals,
## see help(gradientLegend).
The model with regard of f0.
au.mas.gam.f0 <- bam(f1 ~ ton.ord + s(measurement.no, bs="cr") +
s(f0, bs="cr") +
ti(measurement.no, f0) +
s(measurement.no, by=ton.ord, bs="cr"),
data=au.mas, method="ML")
summary.coefs(au.mas.gam.f0)
## Parametric coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 551.92 13.92 39.641 < 2e-16 ***
## ton.ord2 154.09 21.70 7.101 2.51e-12 ***
## ton.ord3 107.62 17.32 6.214 7.86e-10 ***
## ton.ord4 115.28 14.99 7.688 3.90e-14 ***
##
## Approximate significance of smooth terms:
## edf Ref.df F p-value
## s(measurement.no) 5.303 6.384 17.712 < 2e-16 ***
## s(f0) 6.430 7.259 11.991 < 2e-16 ***
## ti(measurement.no,f0) 1.001 1.002 19.886 9.23e-06 ***
## s(measurement.no):ton.ord2 1.987 2.477 1.399 0.222
## s(measurement.no):ton.ord3 1.001 1.002 1.609 0.205
## s(measurement.no):ton.ord4 1.001 1.002 0.023 0.882
The plot of such model.
plot_smooth(au.mas.gam.f0, view="measurement.no", cond=list(f0=100),
rug=F, col="red")
## Summary:
## * ton.ord : factor; set to the value(s): 4.
## * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000.
## * f0 : numeric predictor; set to the value(s): 100.
## * NOTE : No random effects in the model to cancel.
##
plot_smooth(au.mas.gam.f0, view="measurement.no", cond=list(f0=120),
rug=F, col="orange", add=T)
## Summary:
## * ton.ord : factor; set to the value(s): 4.
## * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000.
## * f0 : numeric predictor; set to the value(s): 120.
## * NOTE : No random effects in the model to cancel.
##
plot_smooth(au.mas.gam.f0, view="measurement.no", cond=list(f0=140),
rug=F, col="yellow", add=T)
## Summary:
## * ton.ord : factor; set to the value(s): 4.
## * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000.
## * f0 : numeric predictor; set to the value(s): 140.
## * NOTE : No random effects in the model to cancel.
##
plot_smooth(au.mas.gam.f0, view="measurement.no", cond=list(f0=180),
rug=F, col="green", add=T)
## Summary:
## * ton.ord : factor; set to the value(s): 4.
## * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000.
## * f0 : numeric predictor; set to the value(s): 180.
## * NOTE : No random effects in the model to cancel.
##
plot_smooth(au.mas.gam.f0, view="measurement.no", cond=list(f0=200),
rug=F, col="blue", add=T)
## Summary:
## * ton.ord : factor; set to the value(s): 4.
## * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000.
## * f0 : numeric predictor; set to the value(s): 200.
## * NOTE : No random effects in the model to cancel.
##
fvisgam(au.mas.gam.f0, view=c("measurement.no","f0"),
ylim=quantile(au.mas$f0, c(0.1, 0.9), na.rm=TRUE))
## Summary:
## * ton.ord : factor; set to the value(s): 4.
## * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000.
## * f0 : numeric predictor; with 30 values ranging from 96.765573 to 193.084157.
## * NOTE : No random effects in the model to cancel.
##
## Warning in gradientLegend(c(min.z, max.z), n.seg = 3, pos = 0.875, color =
## pal, : Increase right margin to fit labels or decrease the number of decimals,
## see help(gradientLegend).
We now focus on the central portion of the diphthongs, which means the portions without the inluence of the consonant contexts.
au.central<-droplevels(subset(au,measurement.no>=2))
au.central<-droplevels(subset(au.central,measurement.no<=8))
au.central.mas <- droplevels(subset(au.central,sexe=="M"))
au.central.fem <- droplevels(subset(au.central,sexe=="F"))
au.central.mas$ton.ord <- as.ordered(au.central.mas$ton)
contrasts(au.central.mas$ton.ord) <- "contr.treatment"
au.central.mas.gam.diff <- bam(f1 ~ ton.ord + s(measurement.no, bs="cr",k=6) +
s(measurement.no, by=ton.ord, bs="cr",k=6),
data=au.central.mas, method="ML")
summary.coefs(au.central.mas.gam.diff)
## Parametric coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 558.70 13.33 41.901 < 2e-16 ***
## ton.ord2 153.73 22.20 6.926 9.46e-12 ***
## ton.ord3 148.03 15.44 9.588 < 2e-16 ***
## ton.ord4 153.02 14.19 10.781 < 2e-16 ***
##
## Approximate significance of smooth terms:
## edf Ref.df F p-value
## s(measurement.no) 2.692 3.266 9.376 2.94e-06 ***
## s(measurement.no):ton.ord2 1.003 1.007 2.218 0.1358
## s(measurement.no):ton.ord3 1.001 1.002 2.129 0.1449
## s(measurement.no):ton.ord4 1.000 1.001 5.466 0.0197 *
plot_smooth(au.central.mas.gam.diff, view="measurement.no",
plot_all="ton.ord", rug=F)
## Summary:
## * ton.ord : factor; set to the value(s): 1, 2, 3, 4.
## * measurement.no : numeric predictor; with 30 values ranging from 2.000000 to 8.000000.
## * NOTE : No random effects in the model to cancel.
##
plot_diff(au.central.mas.gam.diff, view="measurement.no",
comp=list(ton.ord=c("1","2")))
## Summary:
## * measurement.no : numeric predictor; with 100 values ranging from 2.000000 to 8.000000.
##
## measurement.no window(s) of significant difference(s):
## 2.000000 - 8.000000
plot_diff(au.central.mas.gam.diff, view="measurement.no",
comp=list(ton.ord=c("2","3")))
## Summary:
## * measurement.no : numeric predictor; with 100 values ranging from 2.000000 to 8.000000.
##
## Difference is not significant.
plot_diff(au.central.mas.gam.diff, view="measurement.no",
comp=list(ton.ord=c("3","4")))
## Summary:
## * measurement.no : numeric predictor; with 100 values ranging from 2.000000 to 8.000000.
##
## Difference is not significant.
au.central.mas.gam.dur <- bam(f1 ~ ton.ord + s(measurement.no, bs="cr",k=6) +
s(duree.ms., bs="cr",k=6) +
ti(measurement.no, duree.ms.,k=6) +
s(measurement.no, by=ton.ord, bs="cr",k=6),
data=au.central.mas, method="ML")
summary.coefs(au.central.mas.gam.dur)
## Parametric coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 553.39 12.75 43.405 < 2e-16 ***
## ton.ord2 149.36 21.42 6.971 7.04e-12 ***
## ton.ord3 144.26 14.73 9.790 < 2e-16 ***
## ton.ord4 163.53 13.64 11.987 < 2e-16 ***
##
## Approximate significance of smooth terms:
## edf Ref.df F p-value
## s(measurement.no) 2.768 3.350 9.836 1.6e-06 ***
## s(duree.ms.) 4.797 4.975 12.714 < 2e-16 ***
## ti(measurement.no,duree.ms.) 1.342 1.603 7.822 0.00402 **
## s(measurement.no):ton.ord2 1.002 1.003 3.412 0.06477 .
## s(measurement.no):ton.ord3 1.001 1.001 2.348 0.12578
## s(measurement.no):ton.ord4 1.002 1.004 4.081 0.04380 *
plot_smooth(au.central.mas.gam.dur, view="measurement.no", cond=list(duree.ms.=170),
rug=F, col="red")
## Summary:
## * ton.ord : factor; set to the value(s): 4.
## * measurement.no : numeric predictor; with 30 values ranging from 2.000000 to 8.000000.
## * duree.ms. : numeric predictor; set to the value(s): 170.
## * NOTE : No random effects in the model to cancel.
##
plot_smooth(au.central.mas.gam.dur, view="measurement.no", cond=list(duree.ms.=80),
rug=F, col="blue", add=T)
## Summary:
## * ton.ord : factor; set to the value(s): 4.
## * measurement.no : numeric predictor; with 30 values ranging from 2.000000 to 8.000000.
## * duree.ms. : numeric predictor; set to the value(s): 80.
## * NOTE : No random effects in the model to cancel.
##
fvisgam(au.central.mas.gam.dur, view=c("measurement.no","duree.ms."),
ylim=quantile(au.central.mas$duree.ms., c(0.1, 0.9)))
## Summary:
## * ton.ord : factor; set to the value(s): 4.
## * measurement.no : numeric predictor; with 30 values ranging from 2.000000 to 8.000000.
## * duree.ms. : numeric predictor; with 30 values ranging from 88.249203 to 188.623093.
## * NOTE : No random effects in the model to cancel.
##
## Warning in gradientLegend(c(min.z, max.z), n.seg = 3, pos = 0.875, color =
## pal, : Increase right margin to fit labels or decrease the number of decimals,
## see help(gradientLegend).
au.central.mas.gam.f0 <- bam(f1 ~ ton.ord + s(measurement.no, bs="cr",k=6) +
s(f0, bs="cr",k=6) +
ti(measurement.no, f0,k=6) +
s(measurement.no, by=ton.ord, bs="cr",k=6),
data=au.central.mas, method="ML")
summary.coefs(au.central.mas.gam.f0)
## Parametric coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 567.54 13.32 42.604 < 2e-16 ***
## ton.ord2 144.91 21.04 6.886 1.44e-11 ***
## ton.ord3 110.99 16.53 6.716 4.32e-11 ***
## ton.ord4 126.86 14.31 8.869 < 2e-16 ***
##
## Approximate significance of smooth terms:
## edf Ref.df F p-value
## s(measurement.no) 2.753 3.334 6.987 8.87e-05 ***
## s(f0) 4.636 4.908 12.260 < 2e-16 ***
## ti(measurement.no,f0) 1.526 1.880 6.984 0.00104 **
## s(measurement.no):ton.ord2 1.104 1.199 0.634 0.52311
## s(measurement.no):ton.ord3 1.001 1.001 0.104 0.74696
## s(measurement.no):ton.ord4 1.000 1.001 0.516 0.47274
plot_smooth(au.central.mas.gam.f0, view="measurement.no", cond=list(f0=100),
rug=F, col="red")
## Summary:
## * ton.ord : factor; set to the value(s): 4.
## * measurement.no : numeric predictor; with 30 values ranging from 2.000000 to 8.000000.
## * f0 : numeric predictor; set to the value(s): 100.
## * NOTE : No random effects in the model to cancel.
##
plot_smooth(au.central.mas.gam.f0, view="measurement.no", cond=list(f0=120),
rug=F, col="orange", add=T)
## Summary:
## * ton.ord : factor; set to the value(s): 4.
## * measurement.no : numeric predictor; with 30 values ranging from 2.000000 to 8.000000.
## * f0 : numeric predictor; set to the value(s): 120.
## * NOTE : No random effects in the model to cancel.
##
plot_smooth(au.central.mas.gam.f0, view="measurement.no", cond=list(f0=140),
rug=F, col="yellow", add=T)
## Summary:
## * ton.ord : factor; set to the value(s): 4.
## * measurement.no : numeric predictor; with 30 values ranging from 2.000000 to 8.000000.
## * f0 : numeric predictor; set to the value(s): 140.
## * NOTE : No random effects in the model to cancel.
##
plot_smooth(au.central.mas.gam.f0, view="measurement.no", cond=list(f0=180),
rug=F, col="green", add=T)
## Summary:
## * ton.ord : factor; set to the value(s): 4.
## * measurement.no : numeric predictor; with 30 values ranging from 2.000000 to 8.000000.
## * f0 : numeric predictor; set to the value(s): 180.
## * NOTE : No random effects in the model to cancel.
##
plot_smooth(au.central.mas.gam.f0, view="measurement.no", cond=list(f0=200),
rug=F, col="blue", add=T)
## Summary:
## * ton.ord : factor; set to the value(s): 4.
## * measurement.no : numeric predictor; with 30 values ranging from 2.000000 to 8.000000.
## * f0 : numeric predictor; set to the value(s): 200.
## * NOTE : No random effects in the model to cancel.
##
fvisgam(au.central.mas.gam.f0, view=c("measurement.no","f0"),
ylim=quantile(au.central.mas$f0, c(0.1, 0.9), na.rm=TRUE))
## Summary:
## * ton.ord : factor; set to the value(s): 4.
## * measurement.no : numeric predictor; with 30 values ranging from 2.000000 to 8.000000.
## * f0 : numeric predictor; with 30 values ranging from 96.144383 to 194.306588.
## * NOTE : No random effects in the model to cancel.
##
## Warning in gradientLegend(c(min.z, max.z), n.seg = 3, pos = 0.875, color =
## pal, : Increase right margin to fit labels or decrease the number of decimals,
## see help(gradientLegend).
Now we look at the trajectories of f2 in different tones with regard of the sexes and the durations.
ggplot(au.mas, aes(x=measurement.no, y=f2, group=numero,
alpha=duree.ms.)) +
facet_grid(~ton) + geom_line()
## Warning: Removed 28 row(s) containing missing values (geom_path).
ggplot(au.fem, aes(x=measurement.no, y=f2, group=numero,
alpha=duree.ms.)) +
facet_grid(~ton) + geom_line()
## Warning: Removed 5 row(s) containing missing values (geom_path).
au.mas.f2.gam.diff <- bam(f2 ~ ton.ord + s(measurement.no, bs="cr") +
s(measurement.no, by=ton.ord, bs="cr"),
data=au.mas, method="ML")
summary.coefs(au.mas.f2.gam.diff)
## Parametric coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 1106.907 36.467 30.354 < 2e-16 ***
## ton.ord2 -3.256 60.448 -0.054 0.95705
## ton.ord3 38.225 42.320 0.903 0.36659
## ton.ord4 121.729 38.818 3.136 0.00176 **
##
## Approximate significance of smooth terms:
## edf Ref.df F p-value
## s(measurement.no) 4.666 5.675 18.874 <2e-16 ***
## s(measurement.no):ton.ord2 1.784 2.221 0.541 0.526
## s(measurement.no):ton.ord3 1.005 1.011 1.026 0.309
## s(measurement.no):ton.ord4 1.003 1.006 0.830 0.362
Now the plots of f2 with different tones.
plot_smooth(au.mas.f2.gam.diff, view="measurement.no",
plot_all="ton.ord", rug=F)
## Summary:
## * ton.ord : factor; set to the value(s): 1, 2, 3, 4.
## * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000.
## * NOTE : No random effects in the model to cancel.
##
plot_diff(au.mas.f2.gam.diff, view="measurement.no",
comp=list(ton.ord=c("1","2")))
## Summary:
## * measurement.no : numeric predictor; with 100 values ranging from 0.000000 to 10.000000.
##
## Difference is not significant.
plot_diff(au.mas.f2.gam.diff, view="measurement.no",
comp=list(ton.ord=c("2","3")))
## Summary:
## * measurement.no : numeric predictor; with 100 values ranging from 0.000000 to 10.000000.
##
## Difference is not significant.
plot_diff(au.mas.f2.gam.diff, view="measurement.no",
comp=list(ton.ord=c("3","4")))
## Summary:
## * measurement.no : numeric predictor; with 100 values ranging from 0.000000 to 10.000000.
##
## measurement.no window(s) of significant difference(s):
## 3.737374 - 10.000000
The model that accounts for the influence of duree.ms. on the trajectories.
au.mas.f2.gam.dur <- bam(f2 ~ ton.ord + s(measurement.no, bs="cr") +
s(duree.ms., bs="cr") +
ti(measurement.no, duree.ms.) +
s(measurement.no, by=ton.ord, bs="cr"),
data=au.mas, method="ML")
summary.coefs(au.mas.f2.gam.dur)
## Parametric coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 1105.238 36.490 30.289 < 2e-16 ***
## ton.ord2 -4.246 60.509 -0.070 0.94407
## ton.ord3 38.483 42.232 0.911 0.36237
## ton.ord4 123.993 38.986 3.180 0.00151 **
##
## Approximate significance of smooth terms:
## edf Ref.df F p-value
## s(measurement.no) 4.674 5.685 19.248 <2e-16 ***
## s(duree.ms.) 1.002 1.003 0.149 0.700
## ti(measurement.no,duree.ms.) 4.177 5.924 0.988 0.403
## s(measurement.no):ton.ord2 1.491 1.827 0.365 0.696
## s(measurement.no):ton.ord3 1.017 1.033 0.971 0.315
## s(measurement.no):ton.ord4 1.002 1.004 0.826 0.363
The plots with regard the durations.
plot_smooth(au.mas.f2.gam.dur, view="measurement.no", cond=list(duree.ms.=170),
rug=F, col="red")
## Summary:
## * ton.ord : factor; set to the value(s): 4.
## * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000.
## * duree.ms. : numeric predictor; set to the value(s): 170.
## * NOTE : No random effects in the model to cancel.
##
plot_smooth(au.mas.f2.gam.dur, view="measurement.no", cond=list(duree.ms.=80),
rug=F, col="blue", add=T)
## Summary:
## * ton.ord : factor; set to the value(s): 4.
## * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000.
## * duree.ms. : numeric predictor; set to the value(s): 80.
## * NOTE : No random effects in the model to cancel.
##
fvisgam(au.mas.f2.gam.dur, view=c("measurement.no","duree.ms."),
ylim=quantile(au.mas$duree.ms., c(0.1, 0.9)))
## Summary:
## * ton.ord : factor; set to the value(s): 4.
## * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000.
## * duree.ms. : numeric predictor; with 30 values ranging from 88.249203 to 188.623093.
## * NOTE : No random effects in the model to cancel.
##
## Warning in gradientLegend(c(min.z, max.z), n.seg = 3, pos = 0.875, color =
## pal, : Increase right margin to fit labels or decrease the number of decimals,
## see help(gradientLegend).
au.mas.f2.gam.f0 <- bam(f2 ~ ton.ord + s(measurement.no, bs="cr") +
s(f0, bs="cr") +
ti(measurement.no, f0) +
s(measurement.no, by=ton.ord, bs="cr"),
data=au.mas, method="ML")
summary.coefs(au.mas.f2.gam.f0)
## Parametric coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 1106.774 38.598 28.674 < 2e-16 ***
## ton.ord2 5.493 60.650 0.091 0.92786
## ton.ord3 40.737 47.598 0.856 0.39230
## ton.ord4 107.365 41.126 2.611 0.00919 **
##
## Approximate significance of smooth terms:
## edf Ref.df F p-value
## s(measurement.no) 4.420 5.403 16.115 < 2e-16 ***
## s(f0) 1.000 1.000 0.022 0.88386
## ti(measurement.no,f0) 1.001 1.002 8.948 0.00285 **
## s(measurement.no):ton.ord2 2.161 2.690 1.530 0.28340
## s(measurement.no):ton.ord3 1.001 1.002 2.489 0.11473
## s(measurement.no):ton.ord4 1.001 1.002 0.204 0.65200
plot_smooth(au.mas.f2.gam.f0, view="measurement.no", cond=list(f0=100),
rug=F, col="red")
## Summary:
## * ton.ord : factor; set to the value(s): 4.
## * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000.
## * f0 : numeric predictor; set to the value(s): 100.
## * NOTE : No random effects in the model to cancel.
##
plot_smooth(au.mas.f2.gam.f0, view="measurement.no", cond=list(f0=120),
rug=F, col="orange", add=T)
## Summary:
## * ton.ord : factor; set to the value(s): 4.
## * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000.
## * f0 : numeric predictor; set to the value(s): 120.
## * NOTE : No random effects in the model to cancel.
##
plot_smooth(au.mas.f2.gam.f0, view="measurement.no", cond=list(f0=140),
rug=F, col="yellow", add=T)
## Summary:
## * ton.ord : factor; set to the value(s): 4.
## * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000.
## * f0 : numeric predictor; set to the value(s): 140.
## * NOTE : No random effects in the model to cancel.
##
plot_smooth(au.mas.f2.gam.f0, view="measurement.no", cond=list(f0=180),
rug=F, col="green", add=T)
## Summary:
## * ton.ord : factor; set to the value(s): 4.
## * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000.
## * f0 : numeric predictor; set to the value(s): 180.
## * NOTE : No random effects in the model to cancel.
##
plot_smooth(au.mas.f2.gam.f0, view="measurement.no", cond=list(f0=200),
rug=F, col="blue", add=T)
## Summary:
## * ton.ord : factor; set to the value(s): 4.
## * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000.
## * f0 : numeric predictor; set to the value(s): 200.
## * NOTE : No random effects in the model to cancel.
##
fvisgam(au.mas.f2.gam.f0, view=c("measurement.no","f0"),
ylim=quantile(au.mas$f0, c(0.1, 0.9), na.rm=TRUE))
## Summary:
## * ton.ord : factor; set to the value(s): 4.
## * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000.
## * f0 : numeric predictor; with 30 values ranging from 96.765573 to 193.084157.
## * NOTE : No random effects in the model to cancel.
##
## Warning in gradientLegend(c(min.z, max.z), n.seg = 3, pos = 0.875, color =
## pal, : Increase right margin to fit labels or decrease the number of decimals,
## see help(gradientLegend).
The central portion:
au.central.mas.f2.gam.diff <- bam(f2 ~ ton.ord + s(measurement.no, bs="cr",k=6) +
s(measurement.no, by=ton.ord, bs="cr",k=6),
data=au.central.mas, method="ML")
summary.coefs(au.central.mas.f2.gam.diff)
## Parametric coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 1021.70 38.86 26.290 <2e-16 ***
## ton.ord2 -41.61 64.69 -0.643 0.5203
## ton.ord3 70.25 45.00 1.561 0.1189
## ton.ord4 137.90 41.37 3.334 0.0009 ***
##
## Approximate significance of smooth terms:
## edf Ref.df F p-value
## s(measurement.no) 1.745 2.121 1.417 0.2323
## s(measurement.no):ton.ord2 1.001 1.002 0.020 0.8896
## s(measurement.no):ton.ord3 1.002 1.005 0.757 0.3836
## s(measurement.no):ton.ord4 1.893 2.307 2.377 0.0804 .
plot_smooth(au.central.mas.f2.gam.diff, view="measurement.no",
plot_all="ton.ord", rug=F)
## Summary:
## * ton.ord : factor; set to the value(s): 1, 2, 3, 4.
## * measurement.no : numeric predictor; with 30 values ranging from 2.000000 to 8.000000.
## * NOTE : No random effects in the model to cancel.
##
plot_diff(au.central.mas.f2.gam.diff, view="measurement.no",
comp=list(ton.ord=c("1","2")))
## Summary:
## * measurement.no : numeric predictor; with 100 values ranging from 2.000000 to 8.000000.
##
## Difference is not significant.
plot_diff(au.central.mas.f2.gam.diff, view="measurement.no",
comp=list(ton.ord=c("2","3")))
## Summary:
## * measurement.no : numeric predictor; with 100 values ranging from 2.000000 to 8.000000.
##
## measurement.no window(s) of significant difference(s):
## 4.969697 - 7.272727
plot_diff(au.central.mas.f2.gam.diff, view="measurement.no",
comp=list(ton.ord=c("3","4")))
## Summary:
## * measurement.no : numeric predictor; with 100 values ranging from 2.000000 to 8.000000.
##
## measurement.no window(s) of significant difference(s):
## 6.000000 - 8.000000
plot_diff(au.central.mas.f2.gam.diff, view="measurement.no",
comp=list(ton.ord=c("2","4")))
## Summary:
## * measurement.no : numeric predictor; with 100 values ranging from 2.000000 to 8.000000.
##
## measurement.no window(s) of significant difference(s):
## 4.060606 - 8.000000
au.central.mas.f2.gam.dur <- bam(f2 ~ ton.ord + s(measurement.no, bs="cr",k=6) +
s(duree.ms., bs="cr",k=6) +
ti(measurement.no, duree.ms.,k=6) +
s(measurement.no, by=ton.ord, bs="cr",k=6),
data=au.central.mas, method="ML")
summary.coefs(au.central.mas.f2.gam.dur)
## Parametric coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 1023.68 38.89 26.324 < 2e-16 ***
## ton.ord2 -40.19 64.86 -0.620 0.53563
## ton.ord3 69.89 44.92 1.556 0.12012
## ton.ord4 134.96 41.55 3.248 0.00121 **
plot_smooth(au.central.mas.f2.gam.dur, view="measurement.no", cond=list(duree.ms.=170),
rug=F, col="red")
## Summary:
## * ton.ord : factor; set to the value(s): 4.
## * measurement.no : numeric predictor; with 30 values ranging from 2.000000 to 8.000000.
## * duree.ms. : numeric predictor; set to the value(s): 170.
## * NOTE : No random effects in the model to cancel.
##
plot_smooth(au.central.mas.f2.gam.dur, view="measurement.no", cond=list(duree.ms.=80),
rug=F, col="blue", add=T)
## Summary:
## * ton.ord : factor; set to the value(s): 4.
## * measurement.no : numeric predictor; with 30 values ranging from 2.000000 to 8.000000.
## * duree.ms. : numeric predictor; set to the value(s): 80.
## * NOTE : No random effects in the model to cancel.
##
fvisgam(au.central.mas.f2.gam.dur, view=c("measurement.no","duree.ms."),
ylim=quantile(au.central.mas$duree.ms., c(0.1, 0.9)))
## Summary:
## * ton.ord : factor; set to the value(s): 4.
## * measurement.no : numeric predictor; with 30 values ranging from 2.000000 to 8.000000.
## * duree.ms. : numeric predictor; with 30 values ranging from 88.249203 to 188.623093.
## * NOTE : No random effects in the model to cancel.
##
## Warning in gradientLegend(c(min.z, max.z), n.seg = 3, pos = 0.875, color =
## pal, : Increase right margin to fit labels or decrease the number of decimals,
## see help(gradientLegend).
au.central.mas.f2.gam.f0 <- bam(f2 ~ ton.ord + s(measurement.no, bs="cr",k=6) +
s(f0, bs="cr",k=6) +
ti(measurement.no, f0,k=6) +
s(measurement.no, by=ton.ord, bs="cr",k=6),
data=au.central.mas, method="ML")
summary.coefs(au.central.mas.f2.gam.f0)
## Parametric coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 1011.64 37.07 27.290 < 2e-16 ***
## ton.ord2 -29.61 58.83 -0.503 0.614896
## ton.ord3 88.26 45.33 1.947 0.052013 .
## ton.ord4 138.85 39.62 3.505 0.000491 ***
##
## Approximate significance of smooth terms:
## edf Ref.df F p-value
## s(measurement.no) 1.119 1.210 0.434 0.4770
## s(f0) 1.000 1.000 0.357 0.5506
## ti(measurement.no,f0) 1.002 1.004 1.509 0.2199
## s(measurement.no):ton.ord2 1.000 1.000 0.206 0.6501
## s(measurement.no):ton.ord3 1.001 1.001 0.490 0.4838
## s(measurement.no):ton.ord4 2.243 2.742 3.078 0.0267 *
plot_smooth(au.central.mas.f2.gam.f0, view="measurement.no", cond=list(f0=100),
rug=F, col="red")
## Summary:
## * ton.ord : factor; set to the value(s): 4.
## * measurement.no : numeric predictor; with 30 values ranging from 2.000000 to 8.000000.
## * f0 : numeric predictor; set to the value(s): 100.
## * NOTE : No random effects in the model to cancel.
##
plot_smooth(au.central.mas.f2.gam.f0, view="measurement.no", cond=list(f0=120),
rug=F, col="orange", add=T)
## Summary:
## * ton.ord : factor; set to the value(s): 4.
## * measurement.no : numeric predictor; with 30 values ranging from 2.000000 to 8.000000.
## * f0 : numeric predictor; set to the value(s): 120.
## * NOTE : No random effects in the model to cancel.
##
plot_smooth(au.central.mas.f2.gam.f0, view="measurement.no", cond=list(f0=140),
rug=F, col="yellow", add=T)
## Summary:
## * ton.ord : factor; set to the value(s): 4.
## * measurement.no : numeric predictor; with 30 values ranging from 2.000000 to 8.000000.
## * f0 : numeric predictor; set to the value(s): 140.
## * NOTE : No random effects in the model to cancel.
##
plot_smooth(au.central.mas.f2.gam.f0, view="measurement.no", cond=list(f0=180),
rug=F, col="green", add=T)
## Summary:
## * ton.ord : factor; set to the value(s): 4.
## * measurement.no : numeric predictor; with 30 values ranging from 2.000000 to 8.000000.
## * f0 : numeric predictor; set to the value(s): 180.
## * NOTE : No random effects in the model to cancel.
##
plot_smooth(au.central.mas.f2.gam.f0, view="measurement.no", cond=list(f0=200),
rug=F, col="blue", add=T)
## Summary:
## * ton.ord : factor; set to the value(s): 4.
## * measurement.no : numeric predictor; with 30 values ranging from 2.000000 to 8.000000.
## * f0 : numeric predictor; set to the value(s): 200.
## * NOTE : No random effects in the model to cancel.
##
fvisgam(au.central.mas.f2.gam.f0, view=c("measurement.no","f0"),
ylim=quantile(au.mas$f0, c(0.1, 0.9), na.rm=TRUE))
## Summary:
## * ton.ord : factor; set to the value(s): 4.
## * measurement.no : numeric predictor; with 30 values ranging from 2.000000 to 8.000000.
## * f0 : numeric predictor; with 30 values ranging from 96.765573 to 193.084157.
## * NOTE : No random effects in the model to cancel.
##
## Warning in gradientLegend(c(min.z, max.z), n.seg = 3, pos = 0.875, color =
## pal, : Increase right margin to fit labels or decrease the number of decimals,
## see help(gradientLegend).
We now switch to the data of feminin subjects.
The first model with a basic smooth of tone 1 and difference smooths.
au.fem$ton.ord <- as.ordered(au.fem$ton)
contrasts(au.fem$ton.ord) <- "contr.treatment"
au.fem.gam.diff <- bam(f1 ~ ton.ord + s(measurement.no, bs="cr") +
s(measurement.no, by=ton.ord, bs="cr"),
data=au.fem, method="ML")
summary.coefs(au.fem.gam.diff)
## Parametric coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 709.69 10.57 67.137 < 2e-16 ***
## ton.ord2 101.82 35.06 2.904 0.00383 **
## ton.ord3 81.61 17.26 4.727 2.90e-06 ***
## ton.ord4 87.02 12.04 7.225 1.71e-12 ***
##
## Approximate significance of smooth terms:
## edf Ref.df F p-value
## s(measurement.no) 4.818 5.845 43.106 < 2e-16 ***
## s(measurement.no):ton.ord2 1.002 1.003 0.003 0.967801
## s(measurement.no):ton.ord3 2.652 3.289 6.487 0.000178 ***
## s(measurement.no):ton.ord4 1.002 1.004 3.590 0.058327 .
Then the plots of predictions and difference smooth.
plot_smooth(au.fem.gam.diff, view="measurement.no",
plot_all="ton.ord", rug=F)
## Summary:
## * ton.ord : factor; set to the value(s): 1, 2, 3, 4.
## * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000.
## * NOTE : No random effects in the model to cancel.
##
plot_diff(au.fem.gam.diff, view="measurement.no",
comp=list(ton.ord=c("1","2")))
## Summary:
## * measurement.no : numeric predictor; with 100 values ranging from 0.000000 to 10.000000.
##
## measurement.no window(s) of significant difference(s):
## 1.414141 - 8.282828
plot_diff(au.fem.gam.diff, view="measurement.no",
comp=list(ton.ord=c("2","3")))
## Summary:
## * measurement.no : numeric predictor; with 100 values ranging from 0.000000 to 10.000000.
##
## measurement.no window(s) of significant difference(s):
## 9.696970 - 10.000000
plot_diff(au.fem.gam.diff, view="measurement.no",
comp=list(ton.ord=c("3","4")))
## Summary:
## * measurement.no : numeric predictor; with 100 values ranging from 0.000000 to 10.000000.
##
## measurement.no window(s) of significant difference(s):
## 8.585859 - 10.000000
The model that accounts for the influence of duree.ms. on the trajectories.
au.fem.gam.dur <- bam(f1 ~ ton.ord + s(measurement.no, bs="cr") +
s(duree.ms., bs="cr") +
ti(measurement.no, duree.ms.) +
s(measurement.no, by=ton.ord, bs="cr"),
data=au.fem, method="ML")
summary.coefs(au.fem.gam.dur)
## Parametric coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 710.46 10.28 69.139 < 2e-16 ***
## ton.ord2 107.37 34.14 3.145 0.00176 **
## ton.ord3 88.68 16.81 5.274 1.94e-07 ***
## ton.ord4 84.65 11.75 7.204 2.01e-12 ***
##
## Approximate significance of smooth terms:
## edf Ref.df F p-value
## s(measurement.no) 4.870 5.902 45.040 < 2e-16 ***
## s(duree.ms.) 2.268 2.792 7.693 0.000178 ***
## ti(measurement.no,duree.ms.) 5.494 7.326 2.144 0.033823 *
## s(measurement.no):ton.ord2 1.001 1.002 0.002 0.978914
## s(measurement.no):ton.ord3 2.811 3.482 6.824 8.43e-05 ***
## s(measurement.no):ton.ord4 1.003 1.006 3.842 0.049956 *
The plots with regard the durations.
plot_smooth(au.fem.gam.dur, view="measurement.no", cond=list(duree.ms.=170),
rug=F, col="red")
## Summary:
## * ton.ord : factor; set to the value(s): 4.
## * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000.
## * duree.ms. : numeric predictor; set to the value(s): 170.
## * NOTE : No random effects in the model to cancel.
##
plot_smooth(au.fem.gam.dur, view="measurement.no", cond=list(duree.ms.=80),
rug=F, col="blue", add=T)
## Summary:
## * ton.ord : factor; set to the value(s): 4.
## * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000.
## * duree.ms. : numeric predictor; set to the value(s): 80.
## * NOTE : No random effects in the model to cancel.
##
fvisgam(au.fem.gam.dur, view=c("measurement.no","duree.ms."),
ylim=quantile(au.fem$duree.ms., c(0.1, 0.9)))
## Summary:
## * ton.ord : factor; set to the value(s): 4.
## * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000.
## * duree.ms. : numeric predictor; with 30 values ranging from 97.219130 to 204.993095.
## * NOTE : No random effects in the model to cancel.
##
## Warning in gradientLegend(c(min.z, max.z), n.seg = 3, pos = 0.875, color =
## pal, : Increase right margin to fit labels or decrease the number of decimals,
## see help(gradientLegend).
The model with regard of f0.
au.fem.gam.f0 <- bam(f1 ~ ton.ord + s(measurement.no, bs="cr") +
s(f0, bs="cr") +
ti(measurement.no, f0) +
s(measurement.no, by=ton.ord, bs="cr"),
data=au.fem, method="ML")
summary.coefs(au.fem.gam.f0)
## Parametric coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 727.32 10.21 71.263 < 2e-16 ***
## ton.ord2 38.13 30.39 1.255 0.2102
## ton.ord3 38.11 18.20 2.094 0.0367 *
## ton.ord4 69.98 12.30 5.690 2.21e-08 ***
##
## Approximate significance of smooth terms:
## edf Ref.df F p-value
## s(measurement.no) 5.594 6.701 64.775 < 2e-16 ***
## s(f0) 5.106 6.125 6.230 2.53e-06 ***
## ti(measurement.no,f0) 8.167 10.340 2.049 0.0238 *
## s(measurement.no):ton.ord2 1.000 1.000 1.517 0.2186
## s(measurement.no):ton.ord3 1.000 1.001 5.757 0.0168 *
## s(measurement.no):ton.ord4 1.001 1.001 2.988 0.0845 .
The plot of such model.
plot_smooth(au.fem.gam.f0, view="measurement.no", cond=list(f0=180),
rug=F, col="red")
## Summary:
## * ton.ord : factor; set to the value(s): 4.
## * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000.
## * f0 : numeric predictor; set to the value(s): 180.
## * NOTE : No random effects in the model to cancel.
##
plot_smooth(au.fem.gam.f0, view="measurement.no", cond=list(f0=200),
rug=F, col="orange", add=T)
## Summary:
## * ton.ord : factor; set to the value(s): 4.
## * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000.
## * f0 : numeric predictor; set to the value(s): 200.
## * NOTE : No random effects in the model to cancel.
##
plot_smooth(au.fem.gam.f0, view="measurement.no", cond=list(f0=220),
rug=F, col="yellow", add=T)
## Summary:
## * ton.ord : factor; set to the value(s): 4.
## * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000.
## * f0 : numeric predictor; set to the value(s): 220.
## * NOTE : No random effects in the model to cancel.
##
plot_smooth(au.fem.gam.f0, view="measurement.no", cond=list(f0=240),
rug=F, col="green", add=T)
## Summary:
## * ton.ord : factor; set to the value(s): 4.
## * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000.
## * f0 : numeric predictor; set to the value(s): 240.
## * NOTE : No random effects in the model to cancel.
##
plot_smooth(au.fem.gam.f0, view="measurement.no", cond=list(f0=260),
rug=F, col="blue", add=T)
## Summary:
## * ton.ord : factor; set to the value(s): 4.
## * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000.
## * f0 : numeric predictor; set to the value(s): 260.
## * NOTE : No random effects in the model to cancel.
##
fvisgam(au.fem.gam.f0, view=c("measurement.no","f0"),
ylim=quantile(au.fem$f0, c(0.1, 0.9), na.rm=TRUE))
## Summary:
## * ton.ord : factor; set to the value(s): 4.
## * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000.
## * f0 : numeric predictor; with 30 values ranging from 148.879493 to 290.377970.
## * NOTE : No random effects in the model to cancel.
##
## Warning in gradientLegend(c(min.z, max.z), n.seg = 3, pos = 0.875, color =
## pal, : Increase right margin to fit labels or decrease the number of decimals,
## see help(gradientLegend).
We now focus on the central portion of the diphthongs, which means the portions without the inluence of the consonant contexts.
au.central.fem$ton.ord <- as.ordered(au.central.fem$ton)
contrasts(au.central.fem$ton.ord) <- "contr.treatment"
au.central.fem.gam.diff <- bam(f1 ~ ton.ord + s(measurement.no, bs="cr",k=6) +
s(measurement.no, by=ton.ord, bs="cr",k=6),
data=au.central.fem, method="ML")
summary.coefs(au.central.fem.gam.diff)
## Parametric coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 765.283 9.775 78.289 < 2e-16 ***
## ton.ord2 102.821 32.421 3.171 0.00165 **
## ton.ord3 44.689 15.963 2.800 0.00540 **
## ton.ord4 78.818 11.120 7.088 7.66e-12 ***
##
## Approximate significance of smooth terms:
## edf Ref.df F p-value
## s(measurement.no) 2.962 3.562 17.882 <2e-16 ***
## s(measurement.no):ton.ord2 1.001 1.001 0.310 0.5787
## s(measurement.no):ton.ord3 1.000 1.001 1.408 0.2362
## s(measurement.no):ton.ord4 1.000 1.001 5.241 0.0226 *
plot_smooth(au.central.fem.gam.diff, view="measurement.no",
plot_all="ton.ord", rug=F)
## Summary:
## * ton.ord : factor; set to the value(s): 1, 2, 3, 4.
## * measurement.no : numeric predictor; with 30 values ranging from 2.000000 to 8.000000.
## * NOTE : No random effects in the model to cancel.
##
plot_diff(au.central.fem.gam.diff, view="measurement.no",
comp=list(ton.ord=c("1","2")))
## Summary:
## * measurement.no : numeric predictor; with 100 values ranging from 2.000000 to 8.000000.
##
## measurement.no window(s) of significant difference(s):
## 2.000000 - 6.787879
plot_diff(au.central.fem.gam.diff, view="measurement.no",
comp=list(ton.ord=c("2","3")))
## Summary:
## * measurement.no : numeric predictor; with 100 values ranging from 2.000000 to 8.000000.
##
## measurement.no window(s) of significant difference(s):
## 2.606061 - 4.484848
plot_diff(au.central.fem.gam.diff, view="measurement.no",
comp=list(ton.ord=c("3","4")))
## Summary:
## * measurement.no : numeric predictor; with 100 values ranging from 2.000000 to 8.000000.
##
## measurement.no window(s) of significant difference(s):
## 3.939394 - 7.393939
au.central.fem.gam.dur <- bam(f1 ~ ton.ord + s(measurement.no, bs="cr",k=6) +
s(duree.ms., bs="cr",k=6) +
ti(measurement.no, duree.ms.,k=6) +
s(measurement.no, by=ton.ord, bs="cr",k=6),
data=au.central.fem, method="ML")
summary.coefs(au.central.fem.gam.dur)
## Parametric coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 768.968 9.186 83.713 < 2e-16 ***
## ton.ord2 130.196 30.851 4.220 3.13e-05 ***
## ton.ord3 52.478 15.033 3.491 0.000545 ***
## ton.ord4 71.111 10.523 6.757 6.08e-11 ***
##
## Approximate significance of smooth terms:
## edf Ref.df F p-value
## s(measurement.no) 3.038 3.644 19.476 < 2e-16 ***
## s(duree.ms.) 3.804 4.327 8.944 8.36e-07 ***
## ti(measurement.no,duree.ms.) 1.851 2.243 5.624 0.00291 **
## s(measurement.no):ton.ord2 1.001 1.002 0.209 0.64842
## s(measurement.no):ton.ord3 1.000 1.001 0.964 0.32685
## s(measurement.no):ton.ord4 1.000 1.001 5.222 0.02290 *
plot_smooth(au.central.fem.gam.dur, view="measurement.no", cond=list(duree.ms.=170),
rug=F, col="red")
## Summary:
## * ton.ord : factor; set to the value(s): 4.
## * measurement.no : numeric predictor; with 30 values ranging from 2.000000 to 8.000000.
## * duree.ms. : numeric predictor; set to the value(s): 170.
## * NOTE : No random effects in the model to cancel.
##
plot_smooth(au.central.fem.gam.dur, view="measurement.no", cond=list(duree.ms.=80),
rug=F, col="blue", add=T)
## Summary:
## * ton.ord : factor; set to the value(s): 4.
## * measurement.no : numeric predictor; with 30 values ranging from 2.000000 to 8.000000.
## * duree.ms. : numeric predictor; set to the value(s): 80.
## * NOTE : No random effects in the model to cancel.
##
fvisgam(au.central.fem.gam.dur, view=c("measurement.no","duree.ms."),
ylim=quantile(au.central.fem$duree.ms., c(0.1, 0.9)))
## Summary:
## * ton.ord : factor; set to the value(s): 4.
## * measurement.no : numeric predictor; with 30 values ranging from 2.000000 to 8.000000.
## * duree.ms. : numeric predictor; with 30 values ranging from 97.219130 to 204.993095.
## * NOTE : No random effects in the model to cancel.
##
## Warning in gradientLegend(c(min.z, max.z), n.seg = 3, pos = 0.875, color =
## pal, : Increase right margin to fit labels or decrease the number of decimals,
## see help(gradientLegend).
au.central.fem.gam.f0 <- bam(f1 ~ ton.ord + s(measurement.no, bs="cr",k=6) +
s(f0, bs="cr",k=6) +
ti(measurement.no, f0,k=6) +
s(measurement.no, by=ton.ord, bs="cr",k=6),
data=au.central.fem, method="ML")
summary.coefs(au.central.fem.gam.f0)
## Parametric coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 776.22 11.83 65.614 < 2e-16 ***
## ton.ord2 40.81 36.09 1.131 0.2590
## ton.ord3 35.61 20.38 1.747 0.0815 .
## ton.ord4 68.08 13.83 4.924 1.35e-06 ***
##
## Approximate significance of smooth terms:
## edf Ref.df F p-value
## s(measurement.no) 2.959 3.560 19.210 < 2e-16 ***
## s(f0) 4.025 4.595 3.609 0.00278 **
## ti(measurement.no,f0) 1.002 1.004 2.540 0.11132
## s(measurement.no):ton.ord2 1.007 1.014 0.244 0.62050
## s(measurement.no):ton.ord3 1.000 1.001 5.412 0.02060 *
## s(measurement.no):ton.ord4 1.000 1.001 7.546 0.00634 **
plot_smooth(au.central.fem.gam.f0, view="measurement.no", cond=list(f0=180),
rug=F, col="red")
## Summary:
## * ton.ord : factor; set to the value(s): 4.
## * measurement.no : numeric predictor; with 30 values ranging from 2.000000 to 8.000000.
## * f0 : numeric predictor; set to the value(s): 180.
## * NOTE : No random effects in the model to cancel.
##
plot_smooth(au.central.fem.gam.f0, view="measurement.no", cond=list(f0=200),
rug=F, col="orange", add=T)
## Summary:
## * ton.ord : factor; set to the value(s): 4.
## * measurement.no : numeric predictor; with 30 values ranging from 2.000000 to 8.000000.
## * f0 : numeric predictor; set to the value(s): 200.
## * NOTE : No random effects in the model to cancel.
##
plot_smooth(au.central.fem.gam.f0, view="measurement.no", cond=list(f0=220),
rug=F, col="yellow", add=T)
## Summary:
## * ton.ord : factor; set to the value(s): 4.
## * measurement.no : numeric predictor; with 30 values ranging from 2.000000 to 8.000000.
## * f0 : numeric predictor; set to the value(s): 220.
## * NOTE : No random effects in the model to cancel.
##
plot_smooth(au.central.fem.gam.f0, view="measurement.no", cond=list(f0=240),
rug=F, col="green", add=T)
## Summary:
## * ton.ord : factor; set to the value(s): 4.
## * measurement.no : numeric predictor; with 30 values ranging from 2.000000 to 8.000000.
## * f0 : numeric predictor; set to the value(s): 240.
## * NOTE : No random effects in the model to cancel.
##
plot_smooth(au.central.fem.gam.f0, view="measurement.no", cond=list(f0=260),
rug=F, col="blue", add=T)
## Summary:
## * ton.ord : factor; set to the value(s): 4.
## * measurement.no : numeric predictor; with 30 values ranging from 2.000000 to 8.000000.
## * f0 : numeric predictor; set to the value(s): 260.
## * NOTE : No random effects in the model to cancel.
##
fvisgam(au.central.fem.gam.f0, view=c("measurement.no","f0"),
ylim=quantile(au.central.fem$f0, c(0.1, 0.9), na.rm=TRUE))
## Summary:
## * ton.ord : factor; set to the value(s): 4.
## * measurement.no : numeric predictor; with 30 values ranging from 2.000000 to 8.000000.
## * f0 : numeric predictor; with 30 values ranging from 148.704236 to 283.580290.
## * NOTE : No random effects in the model to cancel.
##
## Warning in gradientLegend(c(min.z, max.z), n.seg = 3, pos = 0.875, color =
## pal, : Increase right margin to fit labels or decrease the number of decimals,
## see help(gradientLegend).
We fit the same model with a basic smooth of tone 1 and difference smooths.
au.fem.f2.gam.diff <- bam(f2 ~ ton.ord + s(measurement.no, bs="cr") +
s(measurement.no, by=ton.ord, bs="cr"),
data=au.fem, method="ML")
summary.coefs(au.fem.f2.gam.diff)
## Parametric coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 1324.35 18.31 72.334 < 2e-16 ***
## ton.ord2 -100.07 60.72 -1.648 0.09993 .
## ton.ord3 91.94 29.90 3.075 0.00221 **
## ton.ord4 40.39 20.86 1.936 0.05337 .
##
## Approximate significance of smooth terms:
## edf Ref.df F p-value
## s(measurement.no) 4.307 5.267 21.218 <2e-16 ***
## s(measurement.no):ton.ord2 1.013 1.026 0.001 0.995
## s(measurement.no):ton.ord3 1.392 1.683 0.381 0.734
## s(measurement.no):ton.ord4 1.002 1.003 0.967 0.326
Now the plots of f2 with different tones.
plot_smooth(au.fem.f2.gam.diff, view="measurement.no",
plot_all="ton.ord", rug=F)
## Summary:
## * ton.ord : factor; set to the value(s): 1, 2, 3, 4.
## * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000.
## * NOTE : No random effects in the model to cancel.
##
plot_diff(au.fem.f2.gam.diff, view="measurement.no",
comp=list(ton.ord=c("1","2")))
## Summary:
## * measurement.no : numeric predictor; with 100 values ranging from 0.000000 to 10.000000.
##
## Difference is not significant.
plot_diff(au.fem.f2.gam.diff, view="measurement.no",
comp=list(ton.ord=c("2","3")))
## Summary:
## * measurement.no : numeric predictor; with 100 values ranging from 0.000000 to 10.000000.
##
## measurement.no window(s) of significant difference(s):
## 0.404040 - 8.484848
plot_diff(au.fem.f2.gam.diff, view="measurement.no",
comp=list(ton.ord=c("3","4")))
## Summary:
## * measurement.no : numeric predictor; with 100 values ranging from 0.000000 to 10.000000.
##
## Difference is not significant.
The model that accounts for the influence of duree.ms. on the trajectories.
au.fem.f2.gam.dur <- bam(f2 ~ ton.ord + s(measurement.no, bs="cr") +
s(duree.ms., bs="cr") +
ti(measurement.no, duree.ms.) +
s(measurement.no, by=ton.ord, bs="cr"),
data=au.fem, method="ML")
summary.coefs(au.fem.f2.gam.dur)
## Parametric coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 1324.75 17.34 76.381 < 2e-16 ***
## ton.ord2 -100.05 57.52 -1.740 0.08251 .
## ton.ord3 87.38 28.44 3.073 0.00223 **
## ton.ord4 40.99 19.76 2.075 0.03851 *
##
## Approximate significance of smooth terms:
## edf Ref.df F p-value
## s(measurement.no) 4.421 5.398 23.350 <2e-16 ***
## s(duree.ms.) 1.001 1.001 3.242 0.0723 .
## ti(measurement.no,duree.ms.) 8.462 10.685 5.696 <2e-16 ***
## s(measurement.no):ton.ord2 1.002 1.003 0.197 0.6587
## s(measurement.no):ton.ord3 1.452 1.770 0.683 0.5937
## s(measurement.no):ton.ord4 1.001 1.002 0.010 0.9257
The plots with regard the durations.
plot_smooth(au.fem.f2.gam.dur, view="measurement.no", cond=list(duree.ms.=170),
rug=F, col="red")
## Summary:
## * ton.ord : factor; set to the value(s): 4.
## * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000.
## * duree.ms. : numeric predictor; set to the value(s): 170.
## * NOTE : No random effects in the model to cancel.
##
plot_smooth(au.fem.f2.gam.dur, view="measurement.no", cond=list(duree.ms.=80),
rug=F, col="blue", add=T)
## Summary:
## * ton.ord : factor; set to the value(s): 4.
## * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000.
## * duree.ms. : numeric predictor; set to the value(s): 80.
## * NOTE : No random effects in the model to cancel.
##
fvisgam(au.fem.f2.gam.dur, view=c("measurement.no","duree.ms."),
ylim=quantile(au.fem$duree.ms., c(0.1, 0.9)))
## Summary:
## * ton.ord : factor; set to the value(s): 4.
## * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000.
## * duree.ms. : numeric predictor; with 30 values ranging from 97.219130 to 204.993095.
## * NOTE : No random effects in the model to cancel.
##
## Warning in gradientLegend(c(min.z, max.z), n.seg = 3, pos = 0.875, color =
## pal, : Increase right margin to fit labels or decrease the number of decimals,
## see help(gradientLegend).
au.fem.f2.gam.f0 <- bam(f2 ~ ton.ord + s(measurement.no, bs="cr") +
s(f0, bs="cr") +
ti(measurement.no, f0) +
s(measurement.no, by=ton.ord, bs="cr"),
data=au.fem, method="ML")
summary.coefs(au.fem.f2.gam.f0)
## Parametric coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 1301.55 20.14 64.621 <2e-16 ***
## ton.ord2 -17.93 59.67 -0.301 0.7639
## ton.ord3 90.56 35.99 2.517 0.0122 *
## ton.ord4 60.21 24.42 2.466 0.0140 *
##
## Approximate significance of smooth terms:
## edf Ref.df F p-value
## s(measurement.no) 4.362 5.341 22.039 < 2e-16 ***
## s(f0) 4.289 5.291 3.344 0.00599 **
## ti(measurement.no,f0) 3.731 3.948 3.902 0.00723 **
## s(measurement.no):ton.ord2 1.002 1.005 0.113 0.74046
## s(measurement.no):ton.ord3 1.000 1.000 0.002 0.96858
## s(measurement.no):ton.ord4 1.000 1.000 0.402 0.52651
plot_smooth(au.fem.f2.gam.f0, view="measurement.no", cond=list(f0=180),
rug=F, col="red")
## Summary:
## * ton.ord : factor; set to the value(s): 4.
## * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000.
## * f0 : numeric predictor; set to the value(s): 180.
## * NOTE : No random effects in the model to cancel.
##
plot_smooth(au.fem.f2.gam.f0, view="measurement.no", cond=list(f0=200),
rug=F, col="orange", add=T)
## Summary:
## * ton.ord : factor; set to the value(s): 4.
## * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000.
## * f0 : numeric predictor; set to the value(s): 200.
## * NOTE : No random effects in the model to cancel.
##
plot_smooth(au.fem.f2.gam.f0, view="measurement.no", cond=list(f0=220),
rug=F, col="yellow", add=T)
## Summary:
## * ton.ord : factor; set to the value(s): 4.
## * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000.
## * f0 : numeric predictor; set to the value(s): 220.
## * NOTE : No random effects in the model to cancel.
##
plot_smooth(au.fem.f2.gam.f0, view="measurement.no", cond=list(f0=240),
rug=F, col="green", add=T)
## Summary:
## * ton.ord : factor; set to the value(s): 4.
## * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000.
## * f0 : numeric predictor; set to the value(s): 240.
## * NOTE : No random effects in the model to cancel.
##
plot_smooth(au.fem.f2.gam.f0, view="measurement.no", cond=list(f0=260),
rug=F, col="blue", add=T)
## Summary:
## * ton.ord : factor; set to the value(s): 4.
## * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000.
## * f0 : numeric predictor; set to the value(s): 260.
## * NOTE : No random effects in the model to cancel.
##
fvisgam(au.fem.f2.gam.f0, view=c("measurement.no","f0"),
ylim=quantile(au.fem$f0, c(0.1, 0.9), na.rm=TRUE))
## Summary:
## * ton.ord : factor; set to the value(s): 4.
## * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000.
## * f0 : numeric predictor; with 30 values ranging from 148.879493 to 290.377970.
## * NOTE : No random effects in the model to cancel.
##
## Warning in gradientLegend(c(min.z, max.z), n.seg = 3, pos = 0.875, color =
## pal, : Increase right margin to fit labels or decrease the number of decimals,
## see help(gradientLegend).
The central portion:
au.central.fem.f2.gam.diff <- bam(f2 ~ ton.ord + s(measurement.no, bs="cr",k=6) +
s(measurement.no, by=ton.ord, bs="cr",k=6),
data=au.central.fem, method="ML")
summary.coefs(au.central.fem.f2.gam.diff)
## Parametric coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 1272.13 14.86 85.606 < 2e-16 ***
## ton.ord2 -133.12 49.29 -2.701 0.00725 **
## ton.ord3 60.49 24.27 2.493 0.01315 *
## ton.ord4 38.30 16.91 2.265 0.02410 *
##
## Approximate significance of smooth terms:
## edf Ref.df F p-value
## s(measurement.no) 2.974 3.575 9.063 3.34e-06 ***
## s(measurement.no):ton.ord2 1.001 1.002 1.386 0.240
## s(measurement.no):ton.ord3 1.001 1.002 0.076 0.784
## s(measurement.no):ton.ord4 1.001 1.002 0.019 0.895
plot_smooth(au.central.fem.f2.gam.diff, view="measurement.no",
plot_all="ton.ord", rug=F)
## Summary:
## * ton.ord : factor; set to the value(s): 1, 2, 3, 4.
## * measurement.no : numeric predictor; with 30 values ranging from 2.000000 to 8.000000.
## * NOTE : No random effects in the model to cancel.
##
plot_diff(au.central.fem.f2.gam.diff, view="measurement.no",
comp=list(ton.ord=c("1","2")))
## Summary:
## * measurement.no : numeric predictor; with 100 values ranging from 2.000000 to 8.000000.
##
## measurement.no window(s) of significant difference(s):
## 4.121212 - 8.000000
plot_diff(au.central.fem.f2.gam.diff, view="measurement.no",
comp=list(ton.ord=c("2","3")))
## Summary:
## * measurement.no : numeric predictor; with 100 values ranging from 2.000000 to 8.000000.
##
## measurement.no window(s) of significant difference(s):
## 3.030303 - 8.000000
plot_diff(au.central.fem.f2.gam.diff, view="measurement.no",
comp=list(ton.ord=c("3","4")))
## Summary:
## * measurement.no : numeric predictor; with 100 values ranging from 2.000000 to 8.000000.
##
## Difference is not significant.
plot_diff(au.central.fem.f2.gam.diff, view="measurement.no",
comp=list(ton.ord=c("2","4")))
## Summary:
## * measurement.no : numeric predictor; with 100 values ranging from 2.000000 to 8.000000.
##
## measurement.no window(s) of significant difference(s):
## 3.333333 - 8.000000
au.central.fem.f2.gam.dur <- bam(f2 ~ ton.ord + s(measurement.no, bs="cr",k=6) +
s(duree.ms., bs="cr",k=6) +
ti(measurement.no, duree.ms.,k=6) +
s(measurement.no, by=ton.ord, bs="cr",k=6),
data=au.central.fem, method="ML")
summary.coefs(au.central.fem.f2.gam.dur)
## Parametric coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 1279.05 13.43 95.236 <2e-16 ***
## ton.ord2 -86.88 45.15 -1.924 0.0551 .
## ton.ord3 55.76 21.98 2.537 0.0116 *
## ton.ord4 27.39 15.39 1.780 0.0759 .
##
## Approximate significance of smooth terms:
## edf Ref.df F p-value
## s(measurement.no) 3.096 3.705 11.445 < 2e-16 ***
## s(duree.ms.) 3.940 4.447 14.009 < 2e-16 ***
## ti(measurement.no,duree.ms.) 5.920 7.676 2.863 0.00491 **
## s(measurement.no):ton.ord2 1.001 1.001 1.842 0.17543
## s(measurement.no):ton.ord3 1.000 1.001 0.459 0.49844
## s(measurement.no):ton.ord4 1.001 1.002 0.139 0.70966
plot_smooth(au.central.fem.f2.gam.dur, view="measurement.no", cond=list(duree.ms.=170),
rug=F, col="red")
## Summary:
## * ton.ord : factor; set to the value(s): 4.
## * measurement.no : numeric predictor; with 30 values ranging from 2.000000 to 8.000000.
## * duree.ms. : numeric predictor; set to the value(s): 170.
## * NOTE : No random effects in the model to cancel.
##
plot_smooth(au.central.fem.f2.gam.dur, view="measurement.no", cond=list(duree.ms.=80),
rug=F, col="blue", add=T)
## Summary:
## * ton.ord : factor; set to the value(s): 4.
## * measurement.no : numeric predictor; with 30 values ranging from 2.000000 to 8.000000.
## * duree.ms. : numeric predictor; set to the value(s): 80.
## * NOTE : No random effects in the model to cancel.
##
fvisgam(au.central.fem.f2.gam.dur, view=c("measurement.no","duree.ms."),
ylim=quantile(au.central.fem$duree.ms., c(0.1, 0.9)))
## Summary:
## * ton.ord : factor; set to the value(s): 4.
## * measurement.no : numeric predictor; with 30 values ranging from 2.000000 to 8.000000.
## * duree.ms. : numeric predictor; with 30 values ranging from 97.219130 to 204.993095.
## * NOTE : No random effects in the model to cancel.
##
## Warning in gradientLegend(c(min.z, max.z), n.seg = 3, pos = 0.875, color =
## pal, : Increase right margin to fit labels or decrease the number of decimals,
## see help(gradientLegend).
au.central.fem.f2.gam.f0 <- bam(f2 ~ ton.ord + s(measurement.no, bs="cr",k=6) +
s(f0, bs="cr",k=6) +
ti(measurement.no, f0,k=6) +
s(measurement.no, by=ton.ord, bs="cr",k=6),
data=au.central.fem, method="ML")
summary.coefs(au.central.fem.f2.gam.f0)
## Parametric coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 1262.94 18.22 69.317 < 2e-16 ***
## ton.ord2 -45.45 55.76 -0.815 0.41558
## ton.ord3 95.82 31.44 3.048 0.00249 **
## ton.ord4 47.25 21.25 2.223 0.02690 *
##
## Approximate significance of smooth terms:
## edf Ref.df F p-value
## s(measurement.no) 2.855 3.435 6.551 0.000148 ***
## s(f0) 3.779 4.404 3.645 0.003668 **
## ti(measurement.no,f0) 1.001 1.003 0.949 0.330439
## s(measurement.no):ton.ord2 1.001 1.003 0.794 0.373064
## s(measurement.no):ton.ord3 1.001 1.001 1.224 0.269493
## s(measurement.no):ton.ord4 1.324 1.546 0.298 0.575260
plot_smooth(au.central.fem.f2.gam.f0, view="measurement.no", cond=list(f0=180),
rug=F, col="red")
## Summary:
## * ton.ord : factor; set to the value(s): 4.
## * measurement.no : numeric predictor; with 30 values ranging from 2.000000 to 8.000000.
## * f0 : numeric predictor; set to the value(s): 180.
## * NOTE : No random effects in the model to cancel.
##
plot_smooth(au.central.fem.f2.gam.f0, view="measurement.no", cond=list(f0=200),
rug=F, col="orange", add=T)
## Summary:
## * ton.ord : factor; set to the value(s): 4.
## * measurement.no : numeric predictor; with 30 values ranging from 2.000000 to 8.000000.
## * f0 : numeric predictor; set to the value(s): 200.
## * NOTE : No random effects in the model to cancel.
##
plot_smooth(au.central.fem.f2.gam.f0, view="measurement.no", cond=list(f0=220),
rug=F, col="yellow", add=T)
## Summary:
## * ton.ord : factor; set to the value(s): 4.
## * measurement.no : numeric predictor; with 30 values ranging from 2.000000 to 8.000000.
## * f0 : numeric predictor; set to the value(s): 220.
## * NOTE : No random effects in the model to cancel.
##
plot_smooth(au.central.fem.f2.gam.f0, view="measurement.no", cond=list(f0=240),
rug=F, col="green", add=T)
## Summary:
## * ton.ord : factor; set to the value(s): 4.
## * measurement.no : numeric predictor; with 30 values ranging from 2.000000 to 8.000000.
## * f0 : numeric predictor; set to the value(s): 240.
## * NOTE : No random effects in the model to cancel.
##
plot_smooth(au.central.fem.f2.gam.f0, view="measurement.no", cond=list(f0=260),
rug=F, col="blue", add=T)
## Summary:
## * ton.ord : factor; set to the value(s): 4.
## * measurement.no : numeric predictor; with 30 values ranging from 2.000000 to 8.000000.
## * f0 : numeric predictor; set to the value(s): 260.
## * NOTE : No random effects in the model to cancel.
##
fvisgam(au.central.fem.f2.gam.f0, view=c("measurement.no","f0"),
ylim=quantile(au.central.fem$f0, c(0.1, 0.9), na.rm=TRUE))
## Summary:
## * ton.ord : factor; set to the value(s): 4.
## * measurement.no : numeric predictor; with 30 values ranging from 2.000000 to 8.000000.
## * f0 : numeric predictor; with 30 values ranging from 148.704236 to 283.580290.
## * NOTE : No random effects in the model to cancel.
##
## Warning in gradientLegend(c(min.z, max.z), n.seg = 3, pos = 0.875, color =
## pal, : Increase right margin to fit labels or decrease the number of decimals,
## see help(gradientLegend).
The third one is diphthong /ei/.
ei$sexe<-as.factor(ei$sexe)
ei$ton<-as.factor(ei$ton)
ei$pow<-as.factor(ei$pow)
ei$contexte.D<-as.factor(ei$contexte.D)
ei$contexte.G<-as.factor(ei$contexte.G)
ei$f1<-as.numeric(ei$f1)
## Warning: NAs introduced by coercion
ei$f2<-as.numeric(ei$f2)
## Warning: NAs introduced by coercion
ei$f3<-as.numeric(ei$f3)
## Warning: NAs introduced by coercion
ei$f0<-as.numeric(ei$f0)
## Warning: NAs introduced by coercion
# Regroupement par les facteurs
ei.mas <- droplevels(subset(ei,sexe=="M"))
ei.fem <- droplevels(subset(ei,sexe=="F"))
Then the trajectories of f1 in different tones with regard of the sexes and the durations.
ggplot(ei.mas, aes(x=measurement.no, y=f1, group=numero,
alpha=duree.ms.)) +
facet_grid(~ton) + geom_line()
## Warning: Removed 17 row(s) containing missing values (geom_path).
ggplot(ei.fem, aes(x=measurement.no, y=f1, group=numero,
alpha=duree.ms.)) +
facet_grid(~ton) + geom_line()
## Warning: Removed 5 row(s) containing missing values (geom_path).
The basic model with the tone.
ei.mas$ton.ord <- as.ordered(ei.mas$ton)
contrasts(ei.mas$ton.ord) <- "contr.treatment"
ei.mas.gam.diff <- bam(f1 ~ ton.ord + s(measurement.no, bs="cr") +
s(measurement.no, by=ton.ord, bs="cr"),
data=ei.mas, method="ML")
summary.coefs(ei.mas.gam.diff)
## Parametric coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 382.24 21.92 17.440 < 2e-16 ***
## ton.ord2 15.28 26.52 0.576 0.564521
## ton.ord3 80.97 23.54 3.439 0.000604 ***
## ton.ord4 96.06 24.49 3.922 9.27e-05 ***
Then the plots of predictions and difference smooth.
plot_smooth(ei.mas.gam.diff, view="measurement.no",
plot_all="ton.ord", rug=F)
## Summary:
## * ton.ord : factor; set to the value(s): 1, 2, 3, 4.
## * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000.
## * NOTE : No random effects in the model to cancel.
##
plot_diff(ei.mas.gam.diff, view="measurement.no",
comp=list(ton.ord=c("1","2")))
## Summary:
## * measurement.no : numeric predictor; with 100 values ranging from 0.000000 to 10.000000.
##
## Difference is not significant.
plot_diff(ei.mas.gam.diff, view="measurement.no",
comp=list(ton.ord=c("2","3")))
## Summary:
## * measurement.no : numeric predictor; with 100 values ranging from 0.000000 to 10.000000.
##
## measurement.no window(s) of significant difference(s):
## 0.505051 - 8.181818
plot_diff(ei.mas.gam.diff, view="measurement.no",
comp=list(ton.ord=c("3","4")))
## Summary:
## * measurement.no : numeric predictor; with 100 values ranging from 0.000000 to 10.000000.
##
## Difference is not significant.
The model that accounts for the influence of duree.ms. on the trajectories.
ei.mas.gam.dur <- bam(f1 ~ ton.ord + s(measurement.no, bs="cr") +
s(duree.ms., bs="cr") +
ti(measurement.no, duree.ms.) +
s(measurement.no, by=ton.ord, bs="cr"),
data=ei.mas, method="ML")
summary.coefs(ei.mas.gam.dur)
## Parametric coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 383.014 22.572 16.969 < 2e-16 ***
## ton.ord2 2.031 27.687 0.073 0.941525
## ton.ord3 90.245 24.282 3.717 0.000211 ***
## ton.ord4 85.518 25.448 3.361 0.000803 ***
##
## Approximate significance of smooth terms:
## edf Ref.df F p-value
## s(measurement.no) 1.006 1.011 0.711 0.3988
## s(duree.ms.) 7.575 8.320 8.362 <2e-16 ***
## ti(measurement.no,duree.ms.) 5.104 6.914 2.222 0.0305 *
## s(measurement.no):ton.ord2 2.143 2.663 0.964 0.3046
## s(measurement.no):ton.ord3 1.471 1.798 0.207 0.7371
## s(measurement.no):ton.ord4 1.005 1.010 1.189 0.2746
The plots with regard the durations.
plot_smooth(ei.mas.gam.dur, view="measurement.no", cond=list(duree.ms.=170),
rug=F, col="red")
## Summary:
## * ton.ord : factor; set to the value(s): 3.
## * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000.
## * duree.ms. : numeric predictor; set to the value(s): 170.
## * NOTE : No random effects in the model to cancel.
##
plot_smooth(ei.mas.gam.dur, view="measurement.no", cond=list(duree.ms.=80),
rug=F, col="blue", add=T)
## Summary:
## * ton.ord : factor; set to the value(s): 3.
## * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000.
## * duree.ms. : numeric predictor; set to the value(s): 80.
## * NOTE : No random effects in the model to cancel.
##
fvisgam(ei.mas.gam.dur, view=c("measurement.no","duree.ms."),
ylim=quantile(ei.mas$duree.ms., c(0.1, 0.9)))
## Summary:
## * ton.ord : factor; set to the value(s): 3.
## * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000.
## * duree.ms. : numeric predictor; with 30 values ranging from 69.653645 to 160.541647.
## * NOTE : No random effects in the model to cancel.
##
## Warning in gradientLegend(c(min.z, max.z), n.seg = 3, pos = 0.875, color =
## pal, : Increase right margin to fit labels or decrease the number of decimals,
## see help(gradientLegend).
The model with regard of f0.
ei.mas.gam.f0 <- bam(f1 ~ ton.ord + s(measurement.no, bs="cr") +
s(f0, bs="cr") +
ti(measurement.no, f0) +
s(measurement.no, by=ton.ord, bs="cr"),
data=ei.mas, method="ML")
summary.coefs(ei.mas.gam.f0)
## Parametric coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 399.41 22.83 17.494 < 2e-16 ***
## ton.ord2 17.73 27.32 0.649 0.516427
## ton.ord3 51.91 25.31 2.051 0.040519 *
## ton.ord4 97.15 25.32 3.837 0.000131 ***
##
## Approximate significance of smooth terms:
## edf Ref.df F p-value
## s(measurement.no) 1.002 1.003 1.014 0.3142
## s(f0) 5.427 6.335 7.715 <2e-16 ***
## ti(measurement.no,f0) 2.687 3.138 2.545 0.0699 .
## s(measurement.no):ton.ord2 2.055 2.568 1.245 0.2285
## s(measurement.no):ton.ord3 1.003 1.006 0.006 0.9567
## s(measurement.no):ton.ord4 1.002 1.003 2.035 0.1536
The plot of such model.
plot_smooth(ei.mas.gam.f0, view="measurement.no", cond=list(f0=100),
rug=F, col="red")
## Summary:
## * ton.ord : factor; set to the value(s): 3.
## * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000.
## * f0 : numeric predictor; set to the value(s): 100.
## * NOTE : No random effects in the model to cancel.
##
plot_smooth(ei.mas.gam.f0, view="measurement.no", cond=list(f0=120),
rug=F, col="orange", add=T)
## Summary:
## * ton.ord : factor; set to the value(s): 3.
## * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000.
## * f0 : numeric predictor; set to the value(s): 120.
## * NOTE : No random effects in the model to cancel.
##
plot_smooth(ei.mas.gam.f0, view="measurement.no", cond=list(f0=140),
rug=F, col="yellow", add=T)
## Summary:
## * ton.ord : factor; set to the value(s): 3.
## * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000.
## * f0 : numeric predictor; set to the value(s): 140.
## * NOTE : No random effects in the model to cancel.
##
plot_smooth(ei.mas.gam.f0, view="measurement.no", cond=list(f0=180),
rug=F, col="green", add=T)
## Summary:
## * ton.ord : factor; set to the value(s): 3.
## * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000.
## * f0 : numeric predictor; set to the value(s): 180.
## * NOTE : No random effects in the model to cancel.
##
plot_smooth(ei.mas.gam.f0, view="measurement.no", cond=list(f0=200),
rug=F, col="blue", add=T)
## Summary:
## * ton.ord : factor; set to the value(s): 3.
## * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000.
## * f0 : numeric predictor; set to the value(s): 200.
## * NOTE : No random effects in the model to cancel.
##
fvisgam(ei.mas.gam.f0, view=c("measurement.no","f0"),
ylim=quantile(ei.mas$f0, c(0.1, 0.9), na.rm=TRUE))
## Summary:
## * ton.ord : factor; set to the value(s): 3.
## * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000.
## * f0 : numeric predictor; with 30 values ranging from 92.830073 to 209.388440.
## * NOTE : No random effects in the model to cancel.
##
## Warning in gradientLegend(c(min.z, max.z), n.seg = 3, pos = 0.875, color =
## pal, : Increase right margin to fit labels or decrease the number of decimals,
## see help(gradientLegend).
ei.mas.gam.f0.dur <- bam(f1 ~ ton.ord + s(measurement.no, bs="cr") +
s(f0, bs="cr") +
ti(measurement.no, f0) +
s(duree.ms., bs="cr") +
ti(measurement.no, duree.ms.) +
s(measurement.no, by=ton.ord, bs="cr"),
data=ei.mas, method="ML")
summary.coefs(ei.mas.gam.f0.dur)
## Parametric coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 391.24 23.22 16.853 < 2e-16 ***
## ton.ord2 15.12 28.39 0.532 0.594501
## ton.ord3 70.49 25.83 2.729 0.006447 **
## ton.ord4 96.54 26.13 3.695 0.000231 ***
##
## Approximate significance of smooth terms:
## edf Ref.df F p-value
## s(measurement.no) 1.002 1.004 2.001 0.1573
## s(f0) 5.595 6.509 7.350 <2e-16 ***
## ti(measurement.no,f0) 2.900 3.338 3.492 0.0267 *
## s(duree.ms.) 7.761 8.457 9.119 <2e-16 ***
## ti(measurement.no,duree.ms.) 5.515 7.444 1.983 0.0539 .
## s(measurement.no):ton.ord2 2.300 2.862 2.052 0.0837 .
## s(measurement.no):ton.ord3 1.003 1.006 0.099 0.7580
## s(measurement.no):ton.ord4 1.002 1.003 1.069 0.3013
plot_smooth(ei.mas.gam.f0.dur, view="measurement.no", cond=list(f0=100),
rug=F, col="red")
## Summary:
## * ton.ord : factor; set to the value(s): 3.
## * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000.
## * f0 : numeric predictor; set to the value(s): 100.
## * duree.ms. : numeric predictor; set to the value(s): 106.033100625903.
## * NOTE : No random effects in the model to cancel.
##
plot_smooth(ei.mas.gam.f0.dur, view="measurement.no", cond=list(f0=120),
rug=F, col="orange", add=T)
## Summary:
## * ton.ord : factor; set to the value(s): 3.
## * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000.
## * f0 : numeric predictor; set to the value(s): 120.
## * duree.ms. : numeric predictor; set to the value(s): 106.033100625903.
## * NOTE : No random effects in the model to cancel.
##
plot_smooth(ei.mas.gam.f0.dur, view="measurement.no", cond=list(f0=140),
rug=F, col="yellow", add=T)
## Summary:
## * ton.ord : factor; set to the value(s): 3.
## * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000.
## * f0 : numeric predictor; set to the value(s): 140.
## * duree.ms. : numeric predictor; set to the value(s): 106.033100625903.
## * NOTE : No random effects in the model to cancel.
##
plot_smooth(ei.mas.gam.f0.dur, view="measurement.no", cond=list(f0=180),
rug=F, col="green", add=T)
## Summary:
## * ton.ord : factor; set to the value(s): 3.
## * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000.
## * f0 : numeric predictor; set to the value(s): 180.
## * duree.ms. : numeric predictor; set to the value(s): 106.033100625903.
## * NOTE : No random effects in the model to cancel.
##
plot_smooth(ei.mas.gam.f0.dur, view="measurement.no", cond=list(f0=200),
rug=F, col="blue", add=T)
## Summary:
## * ton.ord : factor; set to the value(s): 3.
## * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000.
## * f0 : numeric predictor; set to the value(s): 200.
## * duree.ms. : numeric predictor; set to the value(s): 106.033100625903.
## * NOTE : No random effects in the model to cancel.
##
fvisgam(ei.mas.gam.f0.dur, view=c("measurement.no","f0"),
ylim=quantile(ei.mas$f0, c(0.1, 0.9), na.rm=TRUE))
## Summary:
## * ton.ord : factor; set to the value(s): 3.
## * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000.
## * f0 : numeric predictor; with 30 values ranging from 92.830073 to 209.388440.
## * duree.ms. : numeric predictor; set to the value(s): 106.033100625903.
## * NOTE : No random effects in the model to cancel.
##
## Warning in gradientLegend(c(min.z, max.z), n.seg = 3, pos = 0.875, color =
## pal, : Increase right margin to fit labels or decrease the number of decimals,
## see help(gradientLegend).
The influence of the factor duration is commun in all the diphthongs. All the diphthongs will be realized as more monophthongized with a brief duration.
The General influence of the factor of f0 on the f1 and f2 is as such:
f0 and f1 is a negative correlation.
f0 and f2 is a positive correlation.
However, this correlation is influenced by other factors and not on the same level within the different diphthongs.
In diphthong /ai/, the correlation between f0 and f1 is positive within the female data, which should be regarded after.